2012-06-13 3 views
1

Как это (в данный момент) невозможно использовать Include() в скомпилированном запросе, я пытаюсь переписать их для объединения. Но, похоже, это не так, как хотелось бы.Rewriting Include() к соединению linq

Скажем, у меня есть это соотношение:

Order    OrderState 
Id     Id 
OrderStateId  Description 

Теперь я принести описание следующим образом:

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); 

Но 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.OrderState должен подсесть к o.OrderState без дополнительной помощи для каждого результата в q.

+0

, и вы были правы ... один пункт для вас;) –