【发布时间】:2015-11-04 09:20:53
【问题描述】:
这个问题可能是重复的。但这是我在使用命令时面临的问题。
如果我运行这个命令,
update-database -force
我得到的第一个错误..
数据库中已经有一个名为 tblAbc 的对象
然后我用谷歌搜索,每次我得到一个建议运行的 stackoverflow 链接 Add-Migration Initial -IgnoreChanges
如果我运行这个命令然后运行更新命令,没有错误 - 运行种子方法
但它不会将数据库与新更新同步
然后我尝试了很多次但同样的问题,因此我寻找了一些替代解决方案并得到了。
使用 update-database -Script 但如果我运行此命令并收到以下错误。
用户取消了保存对话框
然后我尝试通过打开 SQL Managment Studio 来解决这个问题
工具>>选项>>设计者>>取消选中阻止保存需要重新创建表格的更改
但在此之后也会出现同样的错误消息。
然后我尝试在我的上下文类中添加以下配置
System.Data.Entity.Database.SetInitializer(new MigrateDatabaseToLatestVersion <context, Configuration>());
它运行成功并以 Running Seed 方法运行,但不同步最新更新。
【问题讨论】:
-
您是否将 EF 与现有数据库一起使用?
-
@heymega.. 是的..我有一个使用 ef 代码优先生成的现有数据库现在我在我的 db(C#) 中进行了一些更改,并且需要在 sql 表中更新相同的数据库跨度>
-
这可能是一个真实的消息,您已经定义了两个同名的数据库表。我以前做过很多次。如果您使用 fluent API 设置它们,则可能值得仔细检查每个名称并检查已指定的名称。检查您的
ToTable()值是否重复 -
@Coulton..实际上假设我删除了 tblAbc 然后运行命令然后它给了我同样的错误但它给了 tblXyz 而不是 tblAbc
-
@Coulton..看看我是否使用流式 API 将 C# 类作为 Abc 我将表名设置为 tblAbc..
标签: sql-server asp.net-mvc entity-framework ef-code-first