我对实体框架和模式很新。如何将数据插入子表?
我将信息插入到父表中。我是否必须返回行的标识然后发出另一个插入?
用户表和用户角色。
我一直在努力寻找一天的解决方案,但我认为这是因为我正在寻找错误的结果。我的结构是使用工作单元/存储库模式设置的。
任何帮助都会有所帮助。谢谢!
答案 0 :(得分:3)
获取Parent对象。将子记录添加到其导航属性中。
类似这样的事情
int orderId=33;
var parent=dbContext.Orders.Where(x=>x.Id==orderId);
parent.Details.Add(new OrderDetail{ Quantity=4, ItemId=37});
parent.Details.Add(new OrderDetail{ Quantity=2, ItemId=48});
dbContext.SaveChanges();
假设Order是您的主实体,Detail是您的子实体,dbContext是您的DBContext类对象。
编辑:如果要将它们一起添加,
Order parent=new Order { CustomerId=35, Discount=43.63 };
parent.Details.Add(new OrderDetail{ Quantity=4, ItemId=37});
parent.Details.Add(new OrderDetail{ Quantity=2, ItemId=48});
dbContext.Orders.Add(parent);
dbContext.SaveChanges();