C# asp.net代码首次迁移播种
我使用EF 6进行迁移和播种,这在大多数情况下都很有效。 这是我第一次使用它,我有一个播种的问题 我的数据库中存储了表WoodTables,这是我的域模型的起点,所以我创建并添加种子中的所有内容,并将它们添加到表中。如果我向其他数据库表添加额外的属性或关系,那么更新数据库将非常有效,并向数据库添加新内容。它说也运行种子,但从不更新我现有的表!我始终必须删除数据库并再次运行更新数据库,以便将新内容添加到现有数据中,即使我使用:C# asp.net代码首次迁移播种,c#,asp.net,entity-framework,ef-code-first,C#,Asp.net,Entity Framework,Ef Code First,我使用EF 6进行迁移和播种,这在大多数情况下都很有效。 这是我第一次使用它,我有一个播种的问题 我的数据库中存储了表WoodTables,这是我的域模型的起点,所以我创建并添加种子中的所有内容,并将它们添加到表中。如果我向其他数据库表添加额外的属性或关系,那么更新数据库将非常有效,并向数据库添加新内容。它说也运行种子,但从不更新我现有的表!我始终必须删除数据库并再次运行更新数据库,以便将新内容添加到现有数据中,即使我使用: context.Tables.AddOrUpdate(newTable
context.Tables.AddOrUpdate(newTable);
有没有办法强制种子设定方法更新它们
我再试一次。
种子设定方法不会更新现有内容。
您可以添加一个人:
new Person
{
ID = 1,
Name = "Smith"
}
现在运行播种方法。
然后向此人添加其他数据
new Person
{
ID = 1,
Name = "Smith",
Prename = "John"
}
再次播种,您在数据库中的人员将不会更新
我现在的解决方法是,删除数据库并再次种子。
DropAndCreateIfModelChanges无法工作,因为模型没有更改,只有种子设定。抱歉,无法准确理解您的问题。播种数据是您的责任,实体框架对此无能为力。只需在dbmigerationsconfiguration类descedant的Seed方法中编写适当的代码 然后,您可以在PackageManager控制台中使用updatedatabase命令触发种子方法执行。当第一次使用DbContext时,它也会被调用,所以您可以作为替代方法重新启动应用程序池