我创建了两个DbContext,一个用于应用程序配置,第二个用于日志记录。多个DbContext,多个Database.SetInitializer
原因是,我想在日志记录数据库上设置最大大小,所以它不会占用所有可用磁盘空间并阻止其他数据库的工作。
在我的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());
}
在LoggingInitialiser的InitializeDatabase方法不会被调用。这是因为只能设置一个初始化器?有两种DbContext的初始化方法吗?
这是否会有被多次调用的风险?我怀疑初始化是昂贵的,即使没有改变部署。如果你把它放在一个静态构造函数中,意味着它只会被调用一次? – Holf