ServiceStack.Ormlite позволяет использовать атрибут Schema для декорирования классов таблицы базы данных, чтобы обозначить, к какой схеме они принадлежат в базе данных.Можно ли указать схему для функции Auth FeatureStack?
Это замечательно для всех таблиц, кроме, как представляется, созданных функцией Auth. Можно ли указать, к какой схеме должны принадлежать таблицы Auth? Я бы предпочел не использовать пользовательские классы для украшения атрибута Schema.
Если нет, я думаю, что я должен попросить изменение где-нибудь?
EDIT 1 - следующее предложение mythz в
Я добавил атрибут в моей инициализации конструктора ..
public class AuthenticationInitialisation : AppInitialisation
{
private readonly IAppSettings _appSettings;
public AuthenticationInitialisation(IAppSettings appSettings)
{
_appSettings = appSettings;
typeof(UserAuth).AddAttributes(new SchemaAttribute("Admin"));
typeof(UserAuthDetails).AddAttributes(new SchemaAttribute("Admin"));
typeof(UserAuthRole).AddAttributes(new SchemaAttribute("Admin"));
}...
Я удалил схему по умолчанию из моего SQL пользователя и я получаю сообщение об исключение на DropAndRecreateTables() ...
var authRepo = (OrmLiteAuthRepository)appHost.TryResolve<IUserAuthRepository>();
if (_appSettings.Get("RecreateAuthTables", false))
authRepo.DropAndReCreateTables(); //Drop and re-create all Auth and registration tables
else...
исключение читает
Невозможно отказаться от таблицы «UserAuth», потому что она не существует или у вас нет разрешения.
засвидетельствованные SQL Profiler показывая следующие передается через SQL Server
DROP TABLE "UserAuth"
EDIT 2 - следующие изменения в MyGet пре-релиз ServiceStack версии
Сейчас я получаю следующее ошибка.
Исключение типа «System.MissingMethodException» происходит красный ServiceStack.dll, но не был обработан в пользовательском коде
Дополнительная информация: Метод не найден: Пустота ServiceStack.MetadataTypesConfig..ctor (System.String, Boolean, Boolean, Boolean, Boolean, Boolean, Boolean, System. String, Boolean, Boolean, Boolean, Boolean, Boolean, System.Nullable`1) '.
Трассировка стека ..
на ServiceStack.NativeTypesFeature..ctor() в ServiceStack.ServiceStackHost..ctor (String SERVICENAME, Сборочные [] assembliesWithServices) в ServiceStack.Host.HttpListener. HttpListenerBase..ctor (String serviceName, Assembly [] assemblyliesWithServices) at ServiceStack.AppHostHttpListenerBase..ctor (String serviceName, Assembly [] assemblyliesWithServices) в MyProduct.AppHost..ctor (инициализация IEnumerable`1) в d: \ dev \ App_Code \ AppHost.cs: строка 14 в MyProduct.G lobal.Application_Start (отправитель объекта, EventArgs e) в d: \ dev \ Global.asax.cs: строка 29
на моем конструкторе AppHost ..
public AppHost(IEnumerable<IAppInitialisation> initialisations) : base("RESTful Web API", typeof(SystemsService).Assembly)
{
if (initialisations == null)
{
_initialisations = new IAppInitialisation[0];
}
else
{
_initialisations = initialisations.ToArray();
}
}
Если использование схем происходит в следующем выпуске ServiceStack тогда я буду просто ждать и установить Схему SQL пользователя по умолчанию на данный момент ..
Спасибо за возвращение мне @mythz - Я обновил этот вопрос с выводами вашего Предложенное решение – Drammy
@Drammy Ммм выглядит как я только расширил схемы, чтобы поддерживать падение/Создание таблиц API, недавно [из этой фиксации] (https: // githu b.com/ServiceStack/ServiceStack.OrmLite/commit/103c0410c39d3033598e05629c1705decc564e34). Можете ли вы попробовать еще раз с [последним предварительным выпуском v4.0.37 в MyGet] (https://github.com/ServiceStack/ServiceStack/wiki/MyGet). Также вы хотите, чтобы любые динамические атрибуты были добавлены до любой конфигурации/инициализации отпечатков, которые их используют. – mythz
спасибо за помощь @mythz - вы должны быть плоскими, поддерживая отличный продукт, поддерживая сообщество, как и вы! В любом случае, если использование схем идет в следующую версию, я просто подожду до этой версии и установлю схему по умолчанию SQL User по умолчанию. – Drammy