实体框架 - 如何忽略自动迁移中的错误

时间:2014-03-27 18:48:33

标签: c# sql entity-framework ef-code-first ef-migrations

我有一个使用SQLCE4和Entity Framework的应用程序。该应用程序有一些尚未应用于特定用户的迁移。不知何故,即使EF表示迁移尚未应用,数据库也有一列。因此,当我尝试运行应用程序时,出现错误A column ID occurred more than once in the specification.

我查看了数据库sdf文件,找到了已经存在的列,并将其与尝试添加它的行相关联。

AddColumn("dbo.ReceiveElements", "PackingSlipID", c => c.String(maxLength: 4000));.

数据库已经有了PackingSlipID列。我在这里玩一个巨大的猜谜游戏,并认为用户可能在数据库更新/迁移过程中关闭了应用程序。 (不确定这是否可行。)

问题

如果我删除上面的行,更新工作正常,数据库运行正常。但是,我需要将其留在那里,因为它会创建一个正确的更新方案。我尝试将代码包装在try / catch中,问题仍然存在。如何防止错误导致迁移的其余部分瘫痪?在调用" AddColumn"之前,我会考虑一种检查列是否存在的方法。虽然我不想修改迁移代码。

数据库设置为使用

自动迁移
Database.SetInitializer<Data.DataManager>(new MigrateDatabaseToLatestVersion<Data.DataManager, Migrations.Configuration>());

0 个答案:

没有答案