检查两次检查之间的AND OR条件

时间:2014-04-04 05:52:52

标签: c# sql .net oop lambda

您好我有以下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子句。

3 个答案:

答案 0 :(得分:1)

  

两种情况都可能正确或任何一种

您只需要或不需要和

var list=(from c in db.sales 
     where c.id ==id ||  c.name==name
     select new model
     {
             //.....

     });

The || (or Operator)

  

条件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操作。

尝试将&& ||更改为||