Базовая группа базовых структур Entity - PullRequest
0 голосов
/ 14 января 2019

У меня есть этот запрос

items = await context.Bookings
                        .GroupBy(p => p.Start.Day, p => p.BookedById, (key, g) => new KeyValuePair<int, decimal>(key, g.Distinct().Count()))
                        .ToListAsync(cancellationToken);

это дает мне ошибку: Сгенерирована ошибка для предупреждения «Microsoft.EntityFrameworkCore.Query.QueryClientEvaluationWarning: выражение LINQ« GroupBy ([p] .Start.Day, [p] .BookedById) »не может быть переведено и будет оценено локально

но если я поменяю его на двойную группу следующим образом

items = await context.Bookings
                    .GroupBy(p => new { p.Start.Day, p.BookedById })
                    .Select(c => new { c.Key.Day, c.Key.BookedById, Count = c.Count() })
                    .GroupBy(z => z.Day)
                    .Select(c => new KeyValuePair<int, decimal>(c.Key, c.Count()))
                    .ToListAsync(cancellationToken);

это работает есть ли способ не использовать двойную группу только для разных?

Другими словами, мне нужен уникальный список пользователей, забронированных за день

lets have this sample of data: day, user, bookingsCount {(1, ad, 2), (1, ac, 3), (2, be, 1), (2, be 3)} so the result should be dayNumber, usersCount: (1,2) , (2, 1)

и где класс Bookings имеет как минимум столбцы Start, BookedById и End у меня во втором запросе кол-во в этой строке не нужно .Select(c => new { c.Key.Day, c.Key.BookedById, Count = c.Count() })

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...