我试图找到一种方法来为子查询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它似乎不起作用。我可能会遗漏一些东西,一直盯着这个。
谢谢!