无法同步实体框架模型和数据库

本文关键字:模型 数据库 框架 实体 同步 | 更新日期: 2023-09-27 18:37:19

我是实体框架的新手,我正在继承一个使用它的项目。目前,我的情况是一切似乎都同步,但 EF 坚持认为它们不是。总之

  • 我所有的迁移都出现在 [__MigrationsHistory] 中,所以我假设它们都已应用。
  • 当我尝试启动由我的模型支持的 WPF 应用时,出现异常The model backing the <Database> context has changed since the database was created.
  • 鉴于此,我假设模型中有一些更改需要迁移到数据库,因此我运行Add-Migration Test以查看 EF 认为需要添加的内容。问题就在这里 — 添加的迁移会尝试添加数据库中已存在的内容。例如,为已经存在的表创建表语句。
  • 如果我在添加上述迁移后运行Update-Database,则会出现预期的错误,There is already an object named 'Table' in the database.

在这一点上,我很糟糕。我处于一个循环中,一切似乎都很好,但 EF 认为事实并非如此。如何调和?

无法同步实体框架模型和数据库

运行命令

Update-database -script

这将为您生成和更新 SQL 脚本。在此脚本中,删除要在其中创建重复表的部分。确保运行除此部分之外的整个脚本。您的数据库和迁移表现在应该是最新的。