2016-02-05 2 views
0

У меня есть родительская модель, содержащая набор дочерних элементов, теперь этот дочерний элемент имеет набор childfchild, это сложная модель. Я хочу добавить, обновить или удалить объекты 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

Это не классический ASP. Можете ли вы удалить тег и заменить его на ASP.NET, пожалуйста? – Paul

ответ

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(); 
+0

Я обновил свои вопросы sry сделал небольшую ошибку – user3387996

+1

И мой ответ не будет изменен. Послушайте, все ваши модели ** одинаковы **. И в моем примере я демонстрирую, как создать цепочку элементов: first-parent, а не дочерний, а затем внук, это логическая последовательность не только с точки зрения программирования. То, что вы точно хотите, можете ли вы показать образец, возможно, фрагмент псевдокода? –

Смежные вопросы