Родительско-дочерний фильтр с QueryBuilder
Предположим, у меня есть 3 таблицы: таблица Employee, EmploymentHistory и Languages. Один сотрудник может иметь много языков и истории занятости.
Работник
ID Name Email
1 AAA aaa@gmail.com
2 BBB bbb@gmail.com
3 CCC ccc@gmail.com
Трудовая книжка
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? Пример: я хочу отфильтровать сотрудника с компанией Девон. Это должен быть сотрудник "ААА".
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 для расширенной фильтрации.
С наилучшими пожеланиями,
Брайан
1 ответ
Решение
После 1 дня мучительной боли, наконец-то я нашел решение. Я использовал динамический linq, предоставленный Microsoft Dynamic LINQ, чтобы решить эту проблему