2016-08-03 50 views
-1

我想我理解LINQ如何包含作品,但是我沒有得到我的陳述來過濾結果。Linq到實體 - 包含不工作

在這種情況下,我會預期返回的前2條記錄,但我得到的所有結果。

爲什麼我的LINQ包含不會過濾掉數據?

MYTABLE: 
CODE VERSION STRING_ID 
A1  1   AAA 
A1  1   BBB 
A1  1   CCC 
A1  1   DDD 

List<String> ListStrings has values of: 
AAA 
BBB 

My Query: 
      var query = context.MYTABLE.Where(x => x.CODE == "A1" && x.VERSION == "1"); 

      if (ListStrings!= null) 
      { 
       query.Where(x => ListStrings.Contains(x.STRING_ID)); 
      } 

      return query.ToList(); 
+2

'查詢= query.Where(..) ' –

回答

4

Where()方法本身會返回一個IEnumerable集合應用了過濾,所以你需要查詢的對象等於設置爲它:

query = query.Where(x => ListStrings.Contains(x.STRING_ID));