在where中使用多个子句

Joh*_*ohn -1 c# linq

在OR的LINQ调用中包含多个wheres的正确方法是什么

List<Pos> posList = DbContext.PosList
                             .Where<Pos>(p => p.Pos == "51000785" || 
                                         p => p.Pos == "123")
                             .ToList<Pos>();
Run Code Online (Sandbox Code Playgroud)

Eri*_*rin 10

Linq where子句接受一个表达式并返回一个bool值.你的两个表达式都有自己的返回值.您需要将这两个组合成一个lambda表达式,该表达式返回一个值,而不是示例中的两个独立值.

List<Pos> posList = DbContext.PosList
         .Where<Pos>(p => p.Pos == "51000785" || p.Pos == "123")
         .ToList<Pos>();
Run Code Online (Sandbox Code Playgroud)