实体框架:将子记录添加到现有父记录
本文关键字:记录 添加 实体 框架 | 更新日期: 2023-09-27 18:34:48
我需要将子记录添加到现有父记录。
我调用以下方法
_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 包含父记录(已存在(和需要添加的新子记录。 例如,为现有订单添加订单项。
但是,当我执行此操作时,不会添加孩子。
我不确定如何指定父项没有更改但添加了子项
请指教。
我终于得到了答案,不得不承认,需要添加父实体而不是附加,并且之后将状态设置为修改。
public TEntity Update(TEntity entity)
{
Entities.Add(entity);
DataContext.Entry(entity).State = EntityState.Modified;
return entity;
}
你需要告诉 EF 子项本身实际上是添加的。它不会从父级假定,当实体状态设置为"已修改"时需要添加某些内容。您需要将该新的子记录添加到上下文中,然后运行保存。
假设OrderItem
班是你的孩子:
dbContext.OrderItems.Add(myNewOrderItem);
dbContext.SaveChanges();