asp.net代码首次迁移播种

时间:2014-12-21 21:09:05

标签: c# asp.net entity-framework ef-code-first

我使用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不起作用,因为模型不会改变,只有播种。

1 个答案:

答案 0 :(得分:0)

抱歉,无法完全理解您的问题。播种数据是您的责任,实体框架无法用它做任何事情。只需在Seed类descedant的DbMigrationsConfiguration方法中编写正确的代码即可。

然后,您可以在程序包管理器控制台中使用Seed命令触发update-database方法执行。当第一次使用DbContext时,它也会被调用,因此您可以重新启动应用程序池作为替代方案。