我有這個查詢在Books,TradingDesks和ProductInfos上運行聯接。這些數據在每個集合中都很龐大。LINQ查詢幫助
var queryJoin = from b in books.Values
join d in tradingDesks.Values
on b.TradingDeskId equals d.Id
join p in ProductInfos.Values
**on b.Id equals p.RiskBookId**
select new { p, Book = b.Name, TradingDeskName = d.Name };
在突出顯示的行(on b.Id equals p.RiskBookId)
,我也想添加像,(on b.Id equals p.RiskBookId || p.RiskBookId == 0)
另一個條件。我如何在這個linq語法中做到這一點。
我想查詢這樣
var queryJoin = from b in books.Values
from d in tradingDesks.Values.Where(x => x.Id == b.TradingDeskId)
from p in cachedProductInfos.Values.Where(y => y.RiskBookId == b.Id)
select new { p, Book = b.Name, TradingDeskName = d.Name };
但是,在這種情況下,查詢將永遠運行下去,我耗盡內存。 。所以我猜它構圖以這種方式做一些瘋狂:(
任何幫助表示讚賞
感謝 瑪尼
這似乎是完全的LINQ到對象,我沒有看到那裏的LINQ到SQL適合 – Aducci