2014-01-13 2 views
1

개체가 포함 된 개체 (예 : 출입구) 출입구에 너비, 높이, 색상 등의 특성이 많이 있지만 색상 만 필요합니다.엔티티의 속성을 선택하십시오. ef linq

는 지금은

Rooms.include(r => r.Door) 

을 가지고 있지만이 문의 모든 속성을합니다. 내가

Rooms.include(r => r.Door.color) 

을 할 경우 색상이 문의 탐색 특성 아니라고 말한다보다.

어떻게 색만 선택할 수 있습니까?

내가 스스로를 분명히하기를 바랍니다. 모든 도움을 주실 수 있습니다

+0

룸을로드하거나 방에 대한 정보가없는 문 색 목록 만 표시 하시겠습니까? –

+0

나는 방이 필요하다 –

답변

1

Include는 선택에 사용되지 않으며, 속성을 쿼리에 포함해야한다는 것을 컴파일러에 알리는 데 사용됩니다. 선택을 사용하여 색상을 가져오고 선택 영역에 룸을 포함하십시오.

편집 : 답변은 추가 정보를 제공 한 후에 편집되었습니다.

Rooms.Select(r => new {Color = r.Door.color, Room = r) ; 
+1

그것은 Sergey의 의견에 언급 된대로 –

+0

방 대신에 문 색만을 선택한다. 이것은 반환 유형이 방의 목록과 더 이상 일치하지 않도록 색만 선택한다. –

+0

@SergeyBerezovskiy 네, 추가하기 전에 대답했다. 정보가 제공되었습니다. –

1

은 불행하게도 당신은 관련 기업의 조건 부하 특성은 없습니다 - 당신은 전체 문 엔티티를로드하거나, 그 실체에 포함되지 않습니다. 하지만 익명의 유형을 사용하면 문과 방의 색상을 반환 할 수 있습니다.

var rooms = from r in db.Rooms 
      select new { 
       Room = r, 
       DoorColor = r.Door.Color 
      }; 
+0

익명 성이 아니라. 엔티티가 공용 속성을 가지고 있으면 Select 문과 컬렉션 초기화자를 사용하여 다른 Door 객체로 캐스팅 할 수 있습니다. – Flater

+1

gues 내가 집계실 대신 다른 속성으로 사용자 지정보기 목록을 반환해야합니다. 도움을 청 하구요 –

+0

@Flater 당신이 언급하고있는 컬렉션 이니셜 라이저에 대해 자세히 설명해 주시겠습니까? –

관련 문제