Linq 相当于具有嵌套条件的Where 子句

Ano*_*per 1 c# linq asp.net entity-framework

SQL 语句会像这样:

Select * From Table
Where 
Column1 = 'A' OR
(Column2 = 'A' AND
 Column3 = 'A')
Run Code Online (Sandbox Code Playgroud)

因此,Column1 可能等于“A”,或者 Column2 和 Column3 等于“A”的组合将构成匹配。

我如何编写 linq 语句来完成同样的事情?

Nik*_*dze 5

使用 LINQ 扩展方法IEnumerable

var result = collection.Where(x => x.Column1 = "A" || 
                                  (x.Column2 == "A" && x.Column3 == "A"));
Run Code Online (Sandbox Code Playgroud)

如果您使用实体框架,您可以从表中获取过滤结果,如下所示:

using (var context = new MyDbContext())
{
    var result = cocontext.MyTable.Where(x => x.Column1 = "A" || 
                                             (x.Column2 == "A" && x.Column3 == "A"));    
}
Run Code Online (Sandbox Code Playgroud)