实体框架:将子记录添加到现有父记录

本文关键字:记录 添加 实体 框架 | 更新日期: 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();