我有以下问题。在调试我正在使用Code First进行一些游戏的项目时,这些项目不会被添加到购买中。购买将添加到客户端。
这是我种子数据的方式。
public class PublicDatabaseInitializer : DropCreateDatabaseIfModelChanges<PublicDataContext>
{
protected override void Seed(PublicDataContext context)
{
context.Clients.Add(new Client()
{
// ...
Purchases = new[]
{
new Purchase()
{
// ...
Items = new[]
{
new Item()
{
// ...
},
new Item()
{
// ...
}
}
},
new Purchase()
{
// ...
}
}
});
base.Seed(context);
}
}
这就是我声明两个ICollection属性的方式:
public virtual ICollection<Purchase> Purchases { get; set; }
public virtual ICollection<Item> Items{ get; set; }
我会感谢任何帮助。
答案 0 :(得分:1)
您需要明确调用DbContext.SaveChanges()
// add client stuff
context.SaveChanges();
答案 1 :(得分:0)
感谢Slauma,我找到了解决方案。正如本文所述:stackoverflow.com/a/11548688/270591。虽然我仍然不清楚原因,但解决方案的方法如下:
从连接字符串中删除user instance = true
。
我想这与访问权限和/或权限有关。