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 在我的结果集中仍然为空。我将如何解决这个问题(以编译查询可接受的方式)?

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.OrderState应该在o.OrderState没有额外帮助的情况下连接到q.

于 2012-06-13T09:33:15.277 回答