LINQ WHERE语句中如何使用OR运算符

4
我只需要一个LINQ版本的这个TSQL语句的等效语句。最好是使用Lambda语句,但任何语句都可以。 TSQL语句:
select *
from Table1 as t1
where t1.Column1 = a OR t1.Column2 = b
2个回答

9

就像其他 C# 代码使用 || 表示 OR 一样。

方法语法:

var query = db.Table1
              .Where(r=> r.Column1 == a || r.Column2 == b);

查询语法:

var query = from r in db.Table1
            where r.Column1 == a || r.Column2 == b
            select r;

查询语法编译成方法语法。

参见:LINQ(C#)中的查询语法和方法语法

大多数在介绍Language Integrated Query (LINQ)的文档中的查询都是使用LINQ申明式查询语法编写的。但是,在编译代码时,查询语法必须被翻译成.NET通用语言运行时(CLR)的方法调用。

您应该查看:基本LINQ查询操作(C#)


@DStanley,我同意措辞有误,我的本意是查询语法编译成方法语法,从这个意义上来讲它们是相同的。 - Habib
1
我同意。我已经删除了我的评论。谢谢。 - D Stanley

0

这对我有用。

IQueryable noveltydata = (IQueryable)noveltyOfPeriod;

var fillNoveltyData = noveltydata.Where(c => c.TypeDay != 2 || c.TypeDay == 8). Where(c => c.EmployeeID == employeeID);

int DayNoSalary = (int)(from dataQueryVal in fillNoveltyData select dataQueryVal).Sum(e => e.Days);


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接