[英]How is Identity.EntityFramework OnModelCreating called
我正在做兩個類似的項目 - 但我沒有創建它們中的任何一個。
它們都具有相同的本地上下文,如下所示:
using Microsoft.AspNet.Identity.EntityFramework;
public class LocalContext :
IdentityDbContext
<ApplicationUser, ApplicationRole, int, ApplicationUserLogin, ApplicationUserRole, ApplicationUserClaim>
{
//.....
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
AddConfigurations(modelBuilder);
}
}
在整個項目中搜索對OnModelCreating
引用將返回上面提到的2個實例,以及命名空間Microsoft.AspNet.Identity.EntityFramework
對此方法的引用
這些項目是使用Onion架構制作的,我使用Swagger運行REST層。
問題是,在其中一個項目中, OnModelCreating
在我啟動應用程序時調用(我期望),而在另一個項目中,它是在用戶第一次進行操作時調用的。
誰能解釋為什么會這樣?
我假設某個地方有一個觸發此調用的設置 - 但是我找不到它 - 正如我上面所說的,我已經搜索了整個項目,但找不到任何調用此方法的地方。
據我所知,兩個項目之間的所有參考文獻都是相同的 - 有人可以幫忙嗎?
在初始化數據庫上下文時調用它。
如果您在啟動代碼中使用數據庫初始化程序,那么它將會發生:
Database.SetInitializer(new CreateDatabaseIfNotExists<MyDbContext>());
否則,它將在您第一次創建它的實例時發生:
using (var context = new MyDbContext()) {
...
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.