【问题标题】:EF Code First DB gets dropped if used in different projects如果在不同的项目中使用 EF Code First DB,则会被丢弃
【发布时间】: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


【解决方案1】:

请忽略这个问题,一切正常。我指的是不同的数据库。

另外,这是了解 EF 迁移的一个很好的理由

【讨论】:

    最近更新 更多