您好我有以下linq声明
var list=(from c in db.sales
where c.id ==id && || c.name==name
select new model
{
//.....
});
我的where子句有问题。
基本上我可以获取id和name值,或者其中任何一个都可以为null。所以我试图在AND OR中使用where子句,这意味着两个条件都可以是正确的或者任何一个。
这个语法我得到了intelliscence错误。请告诉我如何使用AND OR检查where子句。
答案 0 :(得分:1)
两种情况都可能正确或任何一种
您只需要或不需要和
var list=(from c in db.sales
where c.id ==id || c.name==name
select new model
{
//.....
});
条件OR运算符(||)执行其bool的逻辑或运算 操作数。如果第一个操作数的计算结果为true,则为第二个操作数 没有评估。如果第一个操作数的计算结果为false,则第二个操作数 operator确定OR表达式是否作为整体求值 是真还是假,MSDN。
答案 1 :(得分:0)
听起来你想要的只是普通的OR:
where c.id == id || c.name == name
如果c.id == id
为真,c.name == name
为真,或两者都为真,则评估为真。
答案 2 :(得分:0)
我认为你的意思是IntelliSense错误。这很明显,因为&& ||
不是有效的C#语法。
根据您的描述,我认为您只需要OR操作。
尝试将&& ||
更改为||
。