EF数据迁移-模式更改成功应用,但没有发生数据种子



在我的迁移文件夹中有一个初始创建,旁边还有一个后续迁移文件。当我从包管理器控制台运行Update-Database -ProjectName Data -StartUpProjectName Ui -Script时,我得到了Sql脚本,如果我实际执行Update-Database而没有-Script属性,则执行该脚本。

它生成的Sql包含我期望的所有模式创建和修改,但它不包括我希望根据Seed方法出现的INSERT语句。我试过删除数据库,让一切都通过Update-Database和设置AutomaticMigrationsEnabled = true;在我的configuration.cs再次创建,但无论如何,我只得到生成的模式,从来没有数据。

我显然改变了一些我不应该做的事情,因为数据一直在播种,但今天下午停止了。有人有什么明显的建议来解释为什么会发生这种情况吗?

为了确认,我在我的configuration.cs文件中有以下方法,该方法与今天早些时候发生播种时没有变化:

protected override void Seed(ContextClassHere context)
{
    // Calls to seed methods located here
}

问题解决。我不能解释为什么Seed方法没有运行,但我学到了很多关于如何使用Data-Migrations现在这是一个很好的副作用。我已经对我的模型进行了修改,我已经在一个新的迁移文件中手动编写了脚本。事实证明我不需要麻烦,因为有一个工具可以为我做这件事,即Add-Migration。有了这些知识,我把我的模型回滚到预修改,运行InitialCreate,它在种子发生时按预期工作,然后运行Add-Migration方法,它为我创建了新的迁移文件,现在一切都像预期的那样工作,每次都运行Seed方法。

我不能完全解释为什么Seed方法没有执行,但现在按照上述过程,一切都如预期的那样工作。

最新更新