我正在將兩個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();