2012-06-13 2 views
1

컴파일 된 쿼리에 Include()를 사용하지 않기 때문에 조인으로 다시 작성하려고합니다. 그러나 그것은 내가 원하는대로 잘 작동하지 않는 것 같습니다.linq join에 Include()를 다시 작성

var q = (from o in context.Orders 
     where o.Id = orderId 
     select o).Include("OrderState"); 

내가 해봤으로이 다시 쓰기 :

var q = (from o in context.Orders 
     join st in context.OrderStates on o.OrderStateId equals st.Id 
     where o.Id = orderId 
     select o); 

그러나 다음과 같이

Order    OrderState 
Id     Id 
OrderStateId  Description 

지금 내가 설명을 가져 오기 위해 사용 :

내가이 관계를 말해봐 OrderState 여전히 내 결과 집합에서 null입니다. 이 문제를 어떻게 해결할 것인가? (컴파일 된 쿼리에 허용되는 방식으로)?

+0

@hvd와 Oops는 이제 나를위한 것입니다 ... –

답변

3

.Include을 사용할 수없는 경우 실제로 어딘가에 o.OrderState을 포함해야합니다. 그러면 어때요?

var q = (from o in context.Orders 
     where o.Id = orderId 
     select new { Order = o, o.OrderState }); 

o.Order.OrderStateq의 각 결과에 대한 별도의 도움없이 o.OrderState까지 미혹한다.

+0

그리고 너는 맞았 어 ... 너에게 한점;) –