c# - EF 迁移没有挂起的更改,但它仍然提示有挂起的更改。 EF 如何跟踪这个?

标签 c# entity-framework migration database-migration

我的项目中有几个迁移文件,由于我对上次迁移进行了手动修改,所以我不想使用“程序包管理器控制台”重新生成它。我只需要添加 1 列。所以在之前的迁移中手动添加了这个(我可以这样做,因为还没有人升级过)。

现在,当我开始我的项目时,本地数据库似乎可以很好地创建我的新列,但我确实遇到了一个异常: “无法更新数据库以匹配当前模型,因为存在未决更改且自动迁移已禁用”

看起来我能解决这个问题的唯一方法是生成一个额外的迁移——尽管如此,这个迁移生成的代码行与我在之前的迁移中手动编写的代码行完全相同......

我想知道 - EF 如何跟踪这个并且有没有办法绕过它?

还有另一个问题——我想限制我拥有的迁移文件的数量是不是错了?我目前觉得在理想情况下,我的软件的每个版本最多应该只有 1 个迁移文件,以便更好地了解我的代码......

谢谢你,

最佳答案

EF 将序列化模型的哈希值保存在 _MigrationHistory 表中,并在您使用迁移时比较它们以确保数据库架构与模型匹配。我不建议试图绕过这个。如果您希望减少文件数量,则可以回滚然后合并迁移。但我认为这不值得。我只是定期将迁移放入子文件夹

我推荐这篇文章:

http://elegantcode.com/2012/04/12/entity-framework-migrations-tips/

关于c# - EF 迁移没有挂起的更改,但它仍然提示有挂起的更改。 EF 如何跟踪这个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26840797/

相关文章:

entity-framework - 有没有人在生产中使用 POCO Adapter for Entity Framework?

mysql - 迁移问题 : MS SQL > MySQL: Insert Buffer Memory

java - 如何以编程方式查找对某个方法的所有引用?

c# - 通过 PHP 启动服务器端打印作业

.net - 为什么这个 Entity Framework 代码没有保存到数据库?

c# - Entity Framework 中的验证无一异常(exception)

php - Propel PostgreSQL 迁移找不到适配器

c# - 在 IValueConverter 的 Type targetType 参数中输入什么

c# - Entity Framework 数据库生成错误

C# WPF 窗口 : Wrong Width and ActualWidth values