我正在尝试找到使用测试数据为数据库设定种子的正确语法。我的产品表有一个外键。这是类别。我已经在数据库中播放了类别的值,但仍坚持如何将该关系添加到产品中。我试过这种方式无济于事。
context.Categories.AddOrUpdate(x => x.Name,
new Category
{
Name = "Fruit"
});
context.Products.AddOrUpdate(x => x.Name,
new Product
{
Name = "Cherries",
Description = "Bing Cherries",
Measure = "Quart Box",
Price = 1.11M,
Category = context.Categories.FirstOrDefault(x => x.Name == "Fruit")
}
});
有人能指出我正确的方向吗?
答案 0 :(得分:27)
我发现为了从Category中完成外键,就是对上下文进行保存更改。然后我能够查询categoryId的上下文并将其保存到产品上的CategoryId。
context.Categories.AddOrUpdate(x => x.Name,
new Category
{
Name = "Fruit"
});
context.SaveChanges();
context.Product.AddOrUpdate(x => x.Name,
new Product
{
Name = "Cherries",
Description = "Bing Cherries",
Measure = "Quart Box",
Price = 1.11M,
CategoryId = context.Categories.FirstOrDefault(x => x.Name == "Fruit").Id
});