实体框架迁移已停止检测POCO更新

时间:2011-12-13 14:01:55

标签: entity-framework migration ef-code-first ef-migrations

我正在使用Entity Framework和Entity Framework迁移来实现使用代码优先和自动迁移的解决方案。

它过去工作得很好但突然停止检测我对POCO的更新。现在,当我添加一个新属性(非常简单的属性,如年龄或电子邮件)并执行Update-Database时,没有任何反应,它给了我这个:

  

指定'-Verbose'标志以查看迁移期间正在执行的SQL命令   找到0个待定的显式迁移:[]。
  添加种子数据(如果在“迁移设置”类中重写了种子方法)。

没有任何更新!

有谁知道为什么会这样?

1 个答案:

答案 0 :(得分:2)

这可能有两个原因:

  1. 代码中还有其他一些DbContext,这就是自动迁移无法决定使用哪种上下文的原因。
  2. 有一些新的变化,它循环了模式和代码模型的比较,所以EF根本找不到差异。
  3. 通常,自动迁移实现起来既简单又快速,但使用它们并不安全。在某个阶段,此类迁移可能会失败。

    几年前,我开发了基于Linq2SQL AcroDB Library的小型ORM,并使用了SubSonic的自动计算。与EF迁移几乎相同,现在可以做到。它对于小型项目和少量数据进行处理或更改是完美的,但是当项目已经发展到15个以上的表格时,它就变成了一场噩梦。这就是MS最近宣布Code-driven migrations的原因。它们更安全,更适合项目。此外,您可以查看Migrator.Net(此时它比EF好一点。)