Generic Linq IN子查询表达式

时间:2016-08-08 18:50:26

标签: c# entity-framework linq generics expression-trees

我试图找到一种方法来为子查询in子句创建Linq表达式树。

SELECT * FROM x WHERE X.Id IN (SELECT XId FROM Y)

假设我有这个查询,我需要一种方法来创建where子句的System.Linq.Expression。我有一个针对众多实体的通用存储库基础解决方案,我正在为其他过滤器动态创建表达式树,我想将其添加到已创建的表达式树中。

我知道我可以做类似下面的事情,但它不够通用。

var xIds = Y.Select(x => x.XId).ToList();
var final = X.Where(x => xIds.Contains(x.Id)).ToList();

但是我需要这个会创建的Expression树。

我玩了这个链接:Creating a Linq expression dynamically containing a subquery它似乎不起作用。我可能会遗漏一些东西,一直盯着这个。

谢谢!

0 个答案:

没有答案