2016-08-03 2 views
-1

Я думал, что понял, как LINQ содержит работы, однако я не получаю свое утверждение для фильтрации результатов.Linq to Entities - не работает

В этом случае я ожидал, что первые 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));