gpt4 book ai didi

c# - Linq to Entities left join 返回 0 条记录

转载 作者:行者123 更新时间:2023-12-02 04:37:38 24 4
gpt4 key购买 nike

我正在努力将两个 linq 查询压缩为一个查询。基本上我试图通过以下查询实现的是获取与用户相关的所有信息,无论他们是否有任何订单。

正如我目前编写的查询一样,只要我传递给方法的用户 ID 至少有一个顺序,它就可以完美运行。

据我了解,.DefaultIfEmpty() 是 linq 的 SQL 左连接的等价物,但是以下查询为尚未返回的任何用户返回 0 记录下了订单。

查询

var orders = (from u in db.people where u.id == UserId
join o in db.product_transactions.DefaultIfEmpty() on u.id equals o.user_id
join sta in db.order_statuses.DefaultIfEmpty() on o.order_status equals sta.id
join ship in db.shipping_types.DefaultIfEmpty() on o.shipping_type equals ship.shipping_id
select new { o, u, sta, ship }).ToList();

最佳答案

创建Left Join的方法有两种

1) 使用intofrom

 join o in db.product_transactions on u.id equals o.user_id into og
from o in og.DefaultIfEmpty()

2) 使用fromWhere

from o in db.product_transactions.Where(x => u.id == x.user_id).DefaultIfEmpty()

关于c# - Linq to Entities left join 返回 0 条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21610755/

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