C# ASP.NET MVC实体框架生命周期

C# ASP.NET MVC实体框架生命周期,c#,asp.net-mvc,entity-framework,C#,Asp.net Mvc,Entity Framework,今天我真的很困惑,我认为什么是“bug”,但它是关于EF数据库创建逻辑\生命周期的东西,我真的不知道。你能更深入地解释一下这个时刻吗?或者我可以在哪里读到它 1。有一个模型 ` 2。有上下文和初始值设定项(Seed) 应在App_数据文件夹中初始化数据库,但文件夹为空。 即使在控制器中,构造函数中也初始化了ApplicationDbContext public BayesCalculationController(){ _db = new ApplicationDbContext(); } 在

今天我真的很困惑,我认为什么是“bug”,但它是关于EF数据库创建逻辑\生命周期的东西,我真的不知道。你能更深入地解释一下这个时刻吗?或者我可以在哪里读到它

1。有一个模型 `

2。有上下文和初始值设定项(Seed)

应在App_数据文件夹中初始化数据库,但文件夹为空。 即使在控制器中,构造函数中也初始化了ApplicationDbContext

public BayesCalculationController(){ _db = new ApplicationDbContext(); }
在疯狂搜索了一个小时的“bug”之后,我只想把数据发送到视图

@model IEnumerable<ExpertMarksDefinition>
@foreach(var e in Model){ <p>@e.ExpertName</p>}
@model IEnumerable
@foreach(模型中的var e){@e.ExpertName

}
一切都成功了!EF在App_数据中创建了.mdf文件。 我在想,如果Database.SetInitializer调用App\u Start,那么Seed也应该这样做。 我知道这是因为我不了解EF和ASP.NET MVC在内部的工作原理。
那么,你能给我解释一下吗,或者给我一个链接,让我了解它为什么会这样工作吗?

EF是惰性初始化的。在实际需要数据库之前,它不会访问数据库。调用dbContext.Database.Initialize(true)强制初始化InitializationEF是惰性初始化的。在实际需要数据库之前,它不会访问数据库。调用dbContext.Database.Initialize(true)强制初始化
Database.SetInitializer(new ApplicationDbInitializer());
public BayesCalculationController(){ _db = new ApplicationDbContext(); }
@model IEnumerable<ExpertMarksDefinition>
@foreach(var e in Model){ <p>@e.ExpertName</p>}