asp.net 编码第一个迁移种子设定
本文关键字:种子 迁移 第一个 net 编码 asp | 更新日期: 2023-09-27 18:34:49
我将EF 6与迁移和种子设定一起使用,这在大多数情况下都运行良好。这是我第一次使用它,我在播种方面遇到了问题。
我在我的数据库(木表(中存储了表,这是我的域模型的起点,所以我在种子设定中创建并添加所有内容并将它们添加到表中。 如果我向其他数据库表添加其他属性或关系,则更新数据库工作得很好,并将新内容添加到数据库中。它还说"运行播种",但从不更新我现有的表!即使我使用:
context.Tables.AddOrUpdate(newTable);
有没有办法强制种子设定方法更新它们?
我再试一次。种子设定方法不会更新现有内容。您添加人员:
new Person
{
ID = 1,
Name = "Smith"
}
现在运行种子设定方法。然后向此人添加其他数据
new Person
{
ID = 1,
Name = "Smith",
Prename = "John"
}
再次播种,您在数据库中的人将不会更新!
我现在的解决方法是,删除数据库并再次播种。DropAndCreateIfModelChanges 不起作用,因为模型不会更改,只会更改种子。
抱歉,无法准确理解您的问题。数据种子设定是你的责任,实体框架无法对它做任何事情。只需在DbMigrationsConfiguration
类 descedant Seed
方法中编写正确的代码即可。
然后,您可以使用包管理器控制台中的update-database
命令触发Seed
方法执行。首次使用 DbContext
时,也会调用它,因此您可以重新启动应用程序池作为替代方法。