У меня есть этот запрос, который запускает объединение в Books, TradingDesks и ProductInfos. Данные огромны в каждой коллекции.
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 };
Но в этом случае запрос выполняется вечно, и мне не хватает памяти. Поэтому я думаю, что создание этого способа делает что-то сумасшедшее: (
Любая помощь приветствуется.
Спасибо
Mani