我需要将子记录添加到现有父级。
我称之为以下方法
_handler.Update(custOrder);
_handler.Save();
public TEntity Update(TEntity entity)
{
Entities.Attach(entity);
DataContext.Entry(entity).State = EntityState.Modified;
return entity;
}
和
public void Save() {
try
{
base.SaveChanges();
}
catch (Exception e) { }
}
custOrder包含父(已经存在)和需要添加的新子记录。例如。添加现有订单的订单商品。
然而,当我执行此操作时,孩子不会被添加。
我不确定如何指定父级未更改但添加了子级
请建议。
答案 0 :(得分:3)
我终于得到了答案,有点微妙的不得不承认,需要添加父实体而不是附加,然后将状态设置为修改。
public TEntity Update(TEntity entity)
{
Entities.Add(entity);
DataContext.Entry(entity).State = EntityState.Modified;
return entity;
}
答案 1 :(得分:2)
你需要告诉EF孩子本身实际上已被添加。当EntityState设置为Modified时,不会从父级假设需要添加某些内容。您需要将新的子记录添加到上下文中,然后运行保存。
假设OrderItem
班为您的孩子:
dbContext.OrderItems.Add(myNewOrderItem);
dbContext.SaveChanges();