我正在将两个linq查询集中到一个查询中。基本上我试图通过以下查询来实现的是获取与用户相关的所有信息,而不管他们是否有任何订单。Linq to Entities left join return 0 records
正如我目前编写的查询,它完美的工作,只要至少有一个用户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();