我正在使用linq to entities(EF)。
我有一个构造函数,它接受4个字符串参数。根据哪个参数不是空的,我必须构建linq查询。我可以用if else语句来实现,但我还有另一个构造函数有10个参数,在这种情况下需要检查很多组合。
例子:
例子:
Constructor(p1,p2,p3,p4)
{
var prod= from p in ctxt.products.expand("items\details")
where p.x==p1 && p.xx==p2 && p.xxx==p3 && p.xxxx==p4
select p;
}
在上面的where子句中,只有在参数不为null时才应进行条件检查。
也就是说,
如果p2为null,则where子句应该如下所示:where p.x==p1 && p.xxx==p3 && p.xxxx==p4
如果p2和p3都是空,则
where p.x==p1 && p.xxxx==p4
有人可以告诉我如何处理这个问题吗?如果可能的话,你能给出样例代码吗?