1

コンパイルされたクエリでInclude()を使用することは(現時点では)不可能なので、私はそれらを結合に書き直そうとしています。しかし、私が望むようにはうまくいかないようです。

私がこの関係を持っているとしましょう:

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です。これを修正するにはどうすればよいですか(コンパイルされたクエリに受け入れられる方法で)?

4

1 に答える 1

4

を使用できない場合は.Include、実際にo.OrderState結果のどこかに含める必要がありますが、これはどうでしょうか。

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

o.Order.OrderStateo.OrderStateの各結果について、追加のヘルプなしで接続する必要がありqます。

于 2012-06-13T09:33:15.277 に答える