这两个实体是一对多关系(由代码优先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如何知道子状态(新的添加/删除/修改)?
实施此功能的正确方法是什么?