【发布时间】:2025-11-29 22:15:01
【问题描述】:
我有一个使用实体框架代码优先模型的应用程序。
项目的结构是这样的
- 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) 时,它会再次删除它,依此类推。
我不知道它为什么这样做。我不会更改模型。
【问题讨论】:
-
您有不同的解决方案吗?如果是,如果只有一个解决方案同时包含 Web 和 API 项目,会发生什么情况。此外,每次运行任何项目时(或仅当您在 web 和 mvc 之间切换项目时)都会删除数据库
-
请忽略这个问题,我很愚蠢,我实际上指向的是不同的数据库。一切正常。好消息是这让我读到了 EF 代码迁移...
标签: asp.net asp.net-mvc entity-framework ef-code-first