在EF中更新父实体时如何添加/更新子实体

这两个实体是一对多关系(由代码优先fluent api构建)。


public class Parent

{

    public Parent()

    {

        this.Children = new List<Child>();

    }


    public int Id { get; set; }


    public virtual ICollection<Child> Children { get; set; }

}


public class Child

{

    public int Id { get; set; }


    public int ParentId { get; set; }


    public string Data { get; set; }

}

在我的WebApi控制器中,我可以执行一些操作来创建一个父实体(工作正常)并更新一个父实体(存在一些问题)。更新操作如下所示:


public void Update(UpdateParentModel model)

{

    //what should be done here?

}

目前我有两个想法:


获得命名为跟踪父实体existing通过model.Id,并在指定值model逐一的实体。这听起来很愚蠢。而且model.Children我不知道哪个孩子是新孩子,哪个孩子被修改(甚至删除)。


通过创建一个新的父实体model,并将其附加到DbContext并保存。但是DbContext如何知道子状态(新的添加/删除/修改)?


实施此功能的正确方法是什么?


泛舟湖上清波郎朗
浏览 918回答 3
3回答
打开App,查看更多内容
随时随地看视频慕课网APP