【发布时间】:2015-10-24 00:40:58
【问题描述】:
我正在尝试获取数据等于 (1 OR 2) 且数据等于 (6 OR 7) 的所有项目
var oneFromEachList = new[] {
new[] {1,2}, // 1 OR 2
new[] {6,7}, // AND 6 OR 7
};
// item.dataList is an IEnumerable<int>
DbSet<Table>.Where(item => oneFromEachList.All(list => item.dataList.Any(list.Contains)))
这个查询是我想做的,但是不能转换成SQL,我得到:“不支持嵌套查询。Operation1='Case' Operation2='Collect'”
请注意,oneFromEachList 对象在执行查询之前是已知的(它不是来自数据库)。我想可以通过编写 .Where 语句来构建表达式?不过,这似乎很复杂......
【问题讨论】:
-
我不清楚您要做什么,但动态 LINQ 可以轻松构建复杂的 Where 子句。 dynamiclinq.codeplex.com