gpt4 book ai didi

c# - 将 Include() 重写为 linq 连接

转载 作者:太空宇宙 更新时间:2023-11-03 21:59:05 24 4
gpt4 key购买 nike

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

最佳答案

如果您不能使用 .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 中的每个结果提供额外帮助。

关于c# - 将 Include() 重写为 linq 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11011628/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com