我的迁移文件夹中有一个初始创建以及后续迁移文件。当我从程序包管理器控制台运行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
}
答案 0 :(得分:0)
问题解决了。我无法解释为什么Seed
方法没有运行但我已经学到了很多关于如何使用Data-Migrations
的方法,这是一个很好的副作用。我已经修改了我的模型,我手动在一个新的迁移文件中编写了脚本。事实证明,我不必烦恼,因为有一个工具可以为我做,即Add-Migration
。有了这些知识,我将我的模型推回到预修改,运行InitialCreate
按预期的方式运行种子,然后运行Add-Migration
方法为我创建新的迁移文件,现在一切每次运行Seed
方法再次按预期工作。
我无法解释为什么Seed
方法没有执行但是现在按照上述过程一切都按预期工作了。