Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# asp.net代码首次迁移播种_C#_Asp.net_Entity Framework_Ef Code First - Fatal编程技术网

C# asp.net代码首次迁移播种

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

我使用EF 6进行迁移和播种,这在大多数情况下都很有效。 这是我第一次使用它,我有一个播种的问题

我的数据库中存储了表WoodTables,这是我的域模型的起点,所以我创建并添加种子中的所有内容,并将它们添加到表中。如果我向其他数据库表添加额外的属性或关系,那么更新数据库将非常有效,并向数据库添加新内容。它说也运行种子,但从不更新我现有的表!我始终必须删除数据库并再次运行更新数据库,以便将新内容添加到现有数据中,即使我使用:

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时,它也会被调用,所以您可以作为替代方法重新启动应用程序池