Я создал два DbContexts, один для конфигурации приложения, второй для ведения журнала.Несколько DbContext, несколько Database.SetInitializer
Причина в том, что я хочу установить максимальный размер в db журнала, чтобы он не использовал все свободное место на диске и не работал с другими базами данных.
В моем файле Global.asax.cs, у меня есть следующие:
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
Database.SetInitializer<AdminContext>(new AdminInitialiser());
Database.SetInitializer<LoggingContext>(new LoggingInitialiser());
}
Метод InitializeDatabase в LoggingInitialiser не вызывается. Это потому, что можно установить только один инициализатор? Есть ли способ инициализации для двух DbContexts?
Не существует ли риск, что это будет вызвано несколько раз? Я подозреваю, что инициализация дорогостоящая, даже если нет изменений в развертывании. Как насчет того, если вы поместите его в статический конструктор, то есть он когда-нибудь будет вызван один раз? – Holf