もともと私はこのようなコードを持つ2つの結果セットをマージしたToList()を実行すると、なぜこのLINQ to SQLクエリが中断しますか?
var list1 = from a in IDataSourceObject
blahblah
select a;
var list2 = from a in IDataSourceObject2
blahblah
select a;
var joinedlist = from a in list1
join b in list2 on a.id = b.id
into fishcakes
from b in fishcakes.DefaultIfEmpty()
orderby b.ranking
select new { blah=cakes, etc. }
は、これが正常に動作するために使用されるが、その後私はもう少し、リスト1をフィルタリングしたかったので、私はこれでした:
var list1 = from a in IDataSourceObject
blahblah
select a;
// ToList required because im calling a method in my code
var updatedList1 = from a in list1.ToList()
where myMethod(somestuff) == true
select a;
var list2 = from a in IDataSourceObject2
blahblah
select a;
var joinedlist = from a in updatedList1
join b in list2 on a.id = b.id
into fishcakes
from b in fishcakes.DefaultIfEmpty()
orderby b.ranking
select new { blah=cakes, etc. }
を
しかし、私は本質的にOrderBy brankingがnullであると言っています。 ToListを実行した後に結果をマージすることはもうありません。私はupdatedList1をチェックして、myMethodを常にtrueにしました。本質的に問題はToList()を使用することから来ています。
遅延実行とは関係があると私は理解していますが、どのように控えめなアイデアは持っていません。それはまったく同じでなければなりません。
誰にも提案はありますか?
を試してみてくださいするために、いくつかの
a
ので、fishcakes.DefaultIfEmtpy()
はnullを返すことができるためfishcakesが空であることができるようにすることで、遠方の方でメモリコレクションに参加するん念頭に置いてこれで解決策を探してみてください! –