Loading...
pavsavov avatar pavsavov 18 Точки

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 не дава желания резултат?

Благодаря предварително!

0
Module: C# DB
sukalu88 avatar sukalu88 43 Точки

It's great to be here with everyone, I have a lot of knowledge from what you share, to say thank you, the information and knowledge here helps me a lot. paper io 2

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.