如果我有表格查询
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...
啊。我可以以某种方式拥有我的蛋糕并吃掉它吗?