Скажем, получить все отделы с продажами более $ 100
var deparments = deparmentsRepository.Query(d => d.TotalSales > 100.0m);
Func и Expression> могут быть объявлены одинаково с использованием лямбда-синтаксиса.
На самом деле в статье (в последнем фрагменте кода) есть пример, на который вы уже ссылались.
foreach(var department in uow.Departments.Query(d => d.Budget > 150000)) { ... }
Учитывая, что Query возвращает IQueryable, нет причин, по которым вы не можете встраивать в более сложные запросы.
var deparments = deparmentsRepository.Query(d => d.TotalSales > 100.0m)
.Select(d => new { ... });
Предполагается, что у менеджера и отдела есть внешний ключ, который вам не нужен.
var deparments = deparmentsRepository.Query(d => d.Manager.Name.StartsWith("A"));