我使用EF 6进行迁移和播种,这在大多数情况下效果很好。 这是我第一次使用它而且我对播种有问题。
我将表存储在我的数据库(木制表)中,这是我的域模型的起点,所以我创建并添加了种子中的所有内容并将它们添加到表中。如果我向其他数据库表添加其他属性或关系,则update-database工作正常,并将新内容添加到数据库中。它还说" runnig播种"但永远不要更新我现有的表格!我总是要删除数据库并再次运行update-database以将新内容添加到现有数据中,即使我使用:
context.Tables.AddOrUpdate(newTable);
有没有办法强制播种方法更新它们?
我再试一次。 播种方法不会更新现有内容。 你添加一个人:
new Person
{
ID = 1,
Name = "Smith"
}
现在运行播种方法。 然后向该人员添加其他数据
new Person
{
ID = 1,
Name = "Smith",
Prename = "John"
}
再次播种,数据库中的人员不会更新!
我现在的解决方法是,再次删除数据库和种子。 DropAndCreateIfModelChanges不起作用,因为模型不会改变,只有播种。
答案 0 :(得分:0)
Seed
类descedant的DbMigrationsConfiguration
方法中编写正确的代码即可。
然后,您可以在程序包管理器控制台中使用Seed
命令触发update-database
方法执行。当第一次使用DbContext
时,它也会被调用,因此您可以重新启动应用程序池作为替代方案。