我創建了兩個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