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

时间:2016-03-04 15:00:35

标签: c# sql-server wpf entity-framework migration

我是Entity Framework的新手,我继承了一个使用它的项目。目前,我处于一切似乎都在同步的情况,但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认为它不是。我如何调和事物?

1 个答案:

答案 0 :(得分:1)

运行命令

Update-database -script

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