我有一个使用实体框架代码优先模型的应用程序。
项目的结构是这样的
- Application.Models POCO 对象
- Application.EF EF 数据上下文和存储库
- Application.Web.MVC Web 应用程序(设计器)
上下文初始化器如下所示:
public class DBContextInitializer : DropCreateDatabaseIfModelChanges<DBContext>
{
protected override void Seed(DBContext context)
{
}
}
现在,我有另一个 API 应用程序,它从数据库中获取数据作为 API 调用。该项目如下所示:
- Application.Api.MVC MVC4 API 项目,包含 DTO 对象
- Application.Models 同一个项目
- Application.EF 同一个项目
即使我不更改 POCO 类(Application.Models
项目内部),实体框架也会检测到元数据已更改,并尝试删除并重新创建数据库。如果是这样,当我运行 Designer 应用程序 ( Application.Web.MVC
) 时,它会再次删除它,依此类推。
我不知道它为什么这样做。我没有改变模型。