简体   繁体   English

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

[英]How to use OR operator in LINQ WHERE statement

I just need an equivalent of this TSQL statement written in LINQ.我只需要一个用 LINQ 编写的与此 TSQL 语句等效的语句。 Preferably in lambda statement but anything will work.最好在 lambda 语句中,但任何东西都可以。 TSQL statement: TSQL 语句:

select *
from Table1 as t1
where t1.Column1 = a OR t1.Column2 = b

Just like other C# code use ||就像其他 C# 代码一样使用|| for OR OR

Method Syntax:方法语法:

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

Query Syntax:查询语法:

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

Query Syntax compiles into Method syntax.查询语法编译为方法语法。

See: Query Syntax and Method Syntax in LINQ (C#)请参阅: LINQ (C#) 中的查询语法和方法语法

Most queries in the introductory Language Integrated Query (LINQ) documentation are written by using the LINQ declarative query syntax.介绍性语言集成查询 (LINQ) 文档中的大多数查询都是使用 LINQ 声明性查询语法编写的。 However, the query syntax must be translated into method calls for the .NET common language runtime (CLR) when the code is compiled.但是,在编译代码时,必须将查询语法转换为 .NET 公共语言运行时 (CLR) 的方法调用。

You should see: Basic LINQ Query Operations (C#)您应该会看到:基本 LINQ 查询操作 (C#)

this work for me.这对我有用。

IQueryable noveltydata = (IQueryable)noveltyOfPeriod; IQueryable 新奇数据 = (IQueryable)noveltyOfPeriod;

var fillNoveltyData = noveltydata. var fillNoveltyData = 新奇数据。 Where(c => c.TypeDay != 2 || c.TypeDay == 8).其中(c => c.TypeDay != 2 || c.TypeDay == 8)。 Where(c => c.EmployeeID == employeeID); where(c => c.EmployeeID == employeeID);

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM