2014-02-16 3 views
0

ASP.NET MVC에서 계층 적 쿼리와 해당 데이터 표시를 어떻게 처리합니까?ASP.NET MVC에서 계층 적 쿼리를 처리하는 방법

가이 모양, 나는 몇 가지 모델을 가지고 말할 수 있습니다 : (추가 속성)

public class Parent { 
    public int ParentId {get; set;} 
    public virtual ICollection<ChildLvlOne> ChildsLvl1 {get; set;} 
} 

public class ChildLvlOne { 
    public int ChildLvlOneId {get; set;} 
    public virtual Parent Parent {get; set;} 
    public virtual ICollection<ChildLvlTwo> ChildsLvl2 {get; set;} 
} 

public class ChildLvlTwo { 
    public int ChildLvlTwoId {get; set;} 
    public ChildLvlOne ChildLvlOne {get; set;} 
    public virtual ICollection<SomeOtherObject> SomeOtherObjects {get; set;} 
} 

을 지금은 부모 모두 수준에서 어린이의 데이터와 결합에서 데이터를 표시하려면, ChildLvlTwo의 데이터는 관련된 SomeOtherObjects에 따라 다른 방법으로 표시되어야합니다.

첫 번째 아이디어는 ChildLvlTwo에 대한 새 ViewModel을 만들고 거기에 속성을 추가하여 표시 방법을 결정하는 것입니다. 하지만이 작업을 수행하려면 ChildLvlOne에 대한 새로운 ViewModel을 작성해야하며 부모도 있으며 엄청난 select 문을 쿼리에 작성해야합니다.

이와 같은 문제에 대한 해결책이 있습니까?

답변

0

아이들의 데이터를 표시하는 방법이 중요합니다. 이 작품이 좋아할만한 것 :

from p in Parent 
select new 
{ 
    Parent = p, 
    Child = 
    { 
     ChildLvl1.ChildsLvl2.Select(l2 => ChildLv2.ChildLvlTwoId).ToList().Contains(1) ? "Format1" : 
     ChildLvl1.ChildsLvl2.Select(l2 => ChildLv2.ChildLvlTwoId).ToList().Contains(2) ? "Format2" : 
     ChildLvl1.ChildsLvl2.Select(l2 => ChildLv2.ChildLvlTwoId).ToList().Contains(3) ? "Format3" : "Format4" 
    } 
}; 
관련 문제