LinqKit和Filter子查询

时间:2012-03-07 21:50:46

标签: linq subquery expandable linqkit

我有一对多关系(EF),我想写一个过滤One关系的查询并过滤多关系。

例如:公司有很多员工

编写一个过滤Company.Name =“ZonSoft”以及Company.Employees所在的查询 至少一个名为“Hesius”的员工

from comp in data.Companies.Include("Employees")
where comp.Name = "Zonsoft" AndAlso comp.Employees.Any(Function(em) em.Name = "Hesius")
select comp

这样可以正常工作,但如果在编译时不知道过滤器怎么办? 用户可以选择多个过滤器(名称,年龄,...),我不想写太多 代码。

我正在尝试使用Expression和linqkit 但我不能使过滤器在Employees关系上工作。

'

exp1 as Expression(Of Func(Of Company, Boolean) = Function(comp) comp.Name = "Zonsoft"
exp2 as Expression(Of Func(Of Employee, Boolean) = Function(emp) emp.Name = "Hesius"

如何在一个查询中组合这两个过滤器? 或者如何获得理想的结果?

这有效: '

From comp in data.Companies.Include("Employees")
.Where(exp1)
Select comp.

我正在寻找类似的东西:

From comp in data.Companies.Include("Employees")
.Where(exp1 AndAlso comp.Employees.Any(exp2))
Select cc

0 个答案:

没有答案