フォームのクエリがある場合
var query = from items in entityDb.TableName
join requestedBy in entityDb.People on items.RequestedById equals requestedBy.PersonId in requestedByOuter
from requestedBy in requestedByOuter.DefaultIfEmpty()
select items;
また、これが大きなクエリであり、さらに 10 個の結合があるとします。次に、条件付きフィルターがあります
if (!string.IsNullOrEmpty(phaseFilter))
{
query = query.Where(item => item.Phase == phaseFilter);
}
この時点で、遅延実行の利点を失ったと思います。何千もの結果があると、パフォーマンスが低下する可能性があります。私のクエリが実際には 50 行のコードであることを考えると、私は行かないことを好みます...
if(phaseFilter not null)
//50 lines....
else if(filter2 not null)
//50 lines...
else if (filter2 not null and phaseFilter not null)
//50 lines...
うーん。どうにかして私のケーキを食べてもいいですか?