无法同步实体框架模型和数据库
本文关键字:模型 数据库 框架 实体 同步 | 更新日期: 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 脚本。在此脚本中,删除要在其中创建重复表的部分。确保运行除此部分之外的整个脚本。您的数据库和迁移表现在应该是最新的。