10.Departments with More Than 5 Employees от DataBase First - EF Core модул
Здравейте,
Имам следния въпрос:
Опитах да я реша със следния израз :
var departments = context.Departments
.Select(d => new
{
DepName = d.Name,
MangName = $" {d.Manager.FirstName} {d.Manager.LastName}",
Employees = d.Employees.Select(e => new
{
FName = e.FirstName,
LName = e.LastName,
Job = e.JobTitle
}).OrderBy(e => e.FName)
.ThenBy(e => e.LName)
}).OrderBy(e => e.Employees.Count())
.ThenBy(e => e.DepName)
.TakeWhile(e=> e.Employees.Count() > 5);
Compile-time всичко е ок , но Run-time получавам следния Exception :
" Could not parse expression value....This overload of the method 'System.Linq.Queryable.TakeWhile' is currently not supported. ".
Така както го разбирам в MSDN - https://msdn.microsoft.com/en-us/library/bb548775(v=vs.110).aspx
за да работи TakeWhile - трябва да е върху IEnumerable . Затова реших в предпоследния ред да добавя един ToList().
.ThenBy(e => e.DepName)
.ToList()
.TakeWhile(e=> e.Employees.Count() > 5);
Резулатат е празна конзола / файл (понеже и във файл си записва резултатите).
Въпроса ми е какво би му липсвало за да проработи. И защо всъщност TakeWhile не дава желания резултат?
Благодаря предварително!