【发布时间】:2013-01-15 15:13:01
【问题描述】:
我想检索具有特定订单号的佣金。
这行得通:
var expression = from commission in db.Auftraege
where commission.Auftragsnummer == orderNbr
select new Commission() { EF_Commission = (commission as Auftrag) };
return expression.ToList();
但是,如果我将其转换为使用动态 where 子句(因为我想应用更多过滤器),则似乎不会应用 where 子句。相反,所有佣金都会被退回,而不仅仅是具有特定数字的佣金:
//base query
var expression = from commission in db.Auftraege select new Commission() { EF_Commission = (commission as Auftrag) };
//now add a where clause if the input parameter was specified
if (orderNbr >= 0)
expression.Where(commission => commission.EF_Commission.Auftragsnummer == orderNbr);
return expression.ToList();
我查看了十几个示例,但它们似乎都是这样做的。有人知道为什么第二个查询会忽略 where 子句吗?
【问题讨论】:
标签: linq dynamic where-clause