Linq to Entities - 包含不起作用

时间:2016-08-03 12:39:10

标签: c# 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();

1 个答案:

答案 0 :(得分:5)

Where()方法本身将返回已应用过滤的IEnumerable集合,因此您需要将查询对象设置为等于它:

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