EF数据迁移 - 已成功应用架构更改但未发生数据种子?

时间:2014-03-27 17:13:49

标签: c# entity-framework ef-code-first data-migration seeding

我的迁移文件夹中有一个初始创建以及后续迁移文件。当我从程序包管理器控制台运行Update-Database -ProjectName Data -StartUpProjectName Ui -Script时,如果没有Update-Database属性我实际执行-Script,我将获得将执行的Sql脚本。

它生成的Sql包含我期望它的所有模式创建和修改,但它不包括我希望按照INSERT方法出现的Seed语句。我已经尝试删除数据库,并通过Update-Database和在我的configuration.cs中设置AutomaticMigrationsEnabled = true;再次创建所有内容,但无论如何,我只获得生成的模式,而不是数据。

我显然已经改变了一些我不应该拥有的东西,因为数据播种得很好,但今天下午已经停止了。是否有人有任何明显的建议,说明为什么会发生这种情况?

要确认,我在configuration.cs文件中有以下方法,该文件与今天早些时候播种时相同:

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

1 个答案:

答案 0 :(得分:0)

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

我无法解释为什么Seed方法没有执行但是现在按照上述过程一切都按预期工作了。