2013-01-22 2 views
2

나는 이것이 가능하다는 것을 확신하지만, 문제가있어 문제가 있습니다. 내가 Linq를 사용하여 중첩의 단 한 수준으로 간단한 개체 그래프를 얻으려고하고 있어요. 다음은 구조의 예입니다.linq을 사용하여 중첩 된 컬렉션을 정렬하려면 어떻게해야합니까?

public class City 
{ 
public int CityId { get; set; } 
public string Name { get; set; } 
public List<House> Houses { get; set; } 
} 

public class House 
{ 
public int HouseId { get; set; } 
public int Number { get; set; } 
public int CityId { get; set; } 
} 

그래서 내가하려는 것은 모든 관련 도시의 모든 관련 주택을 확보하는 것입니다. 이름으로 정렬 된 도시를 갖기 위해 노력하고 있으며, 중첩 된 집은 번호순으로 정렬합니다. 투영, 정렬 할 foreach 및 쿼리 완료 후 느린 반복을 시도했습니다. 여기에 내가 지금 무슨의 기초입니다,하지만 난 중첩 된 세트에 액세스하는 방법을 볼 수 없습니다 : 주문 그 영향을주지 않고 (나는 또한 Number 각 도시 Houses을 정렬 관리 할 수있는 방법

List<City> Cities = db.Cities.Include(c => c.Houses).OrderBy(c => c.Name).ToList(); 

을 도시가 있음)?

+0

http://blogs.msdn.com/b/alexj/archive/2009/02/25/tip-1-sorting-relationships-in-entity-framework.aspx –

답변

-1

이 작품처럼이

var cities = (from city in db.Cities 
        orderby city.Name 
        select new { 
         City = city, 
         Houses = city.Houses.OrderBy(c => c.Number) 
        }) 
       .ToList(); 
+0

이해가 안 돼요 당신의 암호. _house.CityId == city.CityId_에 가입 할 수 없습니다. –

+0

'city.Name', 그 다음에'house.Number'에 의해 결과 집합으로 주문합니다. –

+0

도시를 선택해도 원하는 순서대로 주택을 그물로 보내지는 않습니다. – juharr

4

겠습니까 뭔가를 시도?

var Cities = 
      (from c in db.Cities 
      orderby c.Name 
      select new 
      { 
       Name = c.Name, 
       Houses = c.Houses.OrderBy(c => c.Number).ToList() 
      } 
     ); 
+0

익명 형식의 두 번째 속성 이름을 Houses로 이름을 바꿀 수 있습니까? – juharr

+0

죄송합니다 ... 감사합니다! –

관련 문제