2017-08-17 44 views
-1

什么是包括在LINQ调用多个何在OR使用多个条款在

List<Pos> posList = DbContext.PosList 
          .Where<Pos>(p => p.Pos == "51000785" || 
             p => p.Pos == "123") 
          .ToList<Pos>(); 
+3

你可以仅仅删除第二个'P =>' - 它已经被定义 –

+0

做一个简单的谷歌搜索'使用两个条件LINQ其中clause'带来了[这](https://stackoverflow.com/q/7289565/465053),[this](https://stackoverflow.com/q/10333732/465053),[this](https://stackoverflow.com/q/11314203/465053)和[this]( https://stackoverflow.com/q/8755176/465053)SO链接。所有将有助于你得到答案。 – RBT

回答

9

LINQ的where子句接受一个表达式,并返回一个布尔值的正确方法。你的两个表达式都有自己的返回值。你需要把这两个结合成一个lambda表达式,返回一个值,而不是你的例子中的两个单独的值。

List<Pos> posList = DbContext.PosList 
     .Where<Pos>(p => p.Pos == "51000785" || p.Pos == "123") 
     .ToList<Pos>(); 
+1

很好的编辑。希望谁低估你会回来并将其删除。 – DeanOC

+0

乔利好老的小伙子! – John

+0

@DeanOC我现在已经降级并删除了。好答案 –