我有一个数据库和一组已有数据的表。 我先使用代码。现在我被要求将 Category 表添加到数据库中,并使用它来更改其他一些表以通过外键引用该表。 我知道通过以前的经验,如果我在更改模型后更新数据库,它会呻吟,因为FK不能有0。 因此,我希望在数据库更新时使用 Seed 方法实际更新外键。
我想做这样的事情:
protected override void Seed(DatabaseContext context)
{
// Create our categories
context.Categories.AddOrUpdate(m => m.Id,
new Category { Id = 1, Name = "Cameras" },
new Category { Id = 2, Name = "Televisions" }
);
// Get all our current feeds
var feeds = context.Feeds.ToList();
context.Feeds.AddOrUpdate(m => m.Id, feeds.Select(m => m.CategoryId = 1).ToArray());
}
有人能让我知道我是怎么做到的吗?或者,如果有另一种方式吗?
答案 0 :(得分:1)
在循环中:
<add name="SoccerEntities"
connectionString="metadata=res://*/Models.MyModel.csdl
|res://*/Models.MyModel.ssdl
|res://*/Models.MyModel.msl;
provider=System.Data.SqlClient;
provider connection string='server=tcp:<servername>,1433;
initial catalog=MyDB;
persist security info=True;
user id=user;
password=pwd;
MultipleActiveResultSets=True;
App=EntityFramework'"
providerName="System.Data.EntityClient" />
或使用Entity Framework Extended library一批完成:
foreach(var f in context.Feeds)
{
f.CategoryId=1;
}
context.SaveChanges();