Books、TradingDesks、ProductInfosの結合を実行するこのクエリがあります。このコレクションのデータは膨大です。強調表示された行(on b.Id equals p.RiskBookId)
で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 || 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