我有一个包含child的集合的父模型,现在这个孩子有一个childofchild的集合,它是一个复杂的模型。 我想添加,更新或删除Child或ChildOfChild实体,如果我的我的父模型,因为EF 5有很多变化或新的方法我已经在网上搜索过,发现什么都不能解决我这个问题。
现在EF 7,lineQ或扩展库中是否有一个好的方法可以轻松或干净地更新它。 我的糟糕解决方案是多次检查的预告......
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 virtual ICollection<ChildOfChild> Children { get; set; }
public string Data { get; set; }
}
public class ChildOfChild
{
public int Id { get; set; }
public string Data { get; set; }
}
答案 0 :(得分:0)
您的模型是多余的,足以只使用一种模型:
<强>型号:强>
public class Entity
{
public int ID { get; set; }
public string Data { get; set; }
public virtual Entity Parent { get; set; }
public int? ParentID { get; set; }
public virtual ICollection<Entity> Children { get; set; }
}
代码示例:
var dc = new DataContext();
var parent = dc.Entitys.Add(new Entity { Data = "Parent" });
dc.SaveChanges();
dc.Entitys.Add(new Entity { Data = "Child1", ParentID = parent.ID });
dc.Entitys.Add(new Entity { Data = "Child1", ParentID = parent.ID });
var child = dc.Entitys.Add(new Entity { Data = "Child1", ParentID = parent.ID });
dc.SaveChanges();
dc.Entitys.Add(new Entity { Data = "Child2", ParentID = child.ID });
dc.SaveChanges();