2013-04-18 42 views
0

假设我有3个表:Table Employee,EmploymentHistory和Languages。一名员工可以有很多语言和工作经历。使用QueryBuilder的父子过滤器

员工

ID Name Email 
1 AAA [email protected] 
2 BBB [email protected] 
3 CCC [email protected] 

工作经历

ID EmployeeID Company   Position 
1 1   Devon Energy aaa 
2 2   Emric   bbb 
3 3   Capcom   ccc 

语言

ID EmployeeID Language Level 
1 1   English  Expert 
2 2   Dutch  Expert 
3 3   Franch  Expert 

如何使用的ObjectQuery的QueryBuilder应用过滤器?例如:我想过滤德文公司的员工。它应该是员工“AAA”。

var emp = Translate(context.Employees.Include("EmploymentHistories")); 

public ObjectQuery<T> Translate<T>(ObjectQuery<T> objectQuery) 
{ 
     objectQuery.Where("it.EmploymentHistories.Company = 'Devon Energy'"); // EmploymentHistories.Company is not found. How can I filter through it included property 
} 

注意:我正在使用QueryBuilder进行高级筛选。

最好的问候,

布赖恩

回答

0

后的剧痛1日,最后,我已经找到了解决方案。我用microsoft Dynamic LINQ提供的动态linq来解决这个问题