如果我有形式有條件的地方過濾器使用延遲執行的地方嗎?
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);
}
在這一點上我相信我已經失去了延期執行的優勢。 1000結果可能會損害性能。考慮到我的查詢實際上是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...
唉。我可以不知何故擁有我的蛋糕並且也可以吃嗎?
我認爲你的意思是IQueryable,而不是IEnumerable。 – usr 2012-08-06 16:20:36
@usr:['IQueryable:IEnumerable '。](http://msdn.microsoft.com/zh-cn/library/bb351562.aspx) –
Ryan
2012-08-06 16:23:10