powered by simpleCommunicator - 2.0.33     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Группировка в EF core 3.1.2 c System.Linq.Dynamic.Core
4 сообщений из 4, страница 1 из 1
Группировка в EF core 3.1.2 c System.Linq.Dynamic.Core
    #39928984
vb_sub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет, использую вышеописанный в сабже стек и к сожалению уперся в недавно внесенную фичу для EF core- запрет группировки на клиентской стороне.

Есть у меня запрос, который берет записи и группирует их.
Чтобы можно было поразнообразнее составлять фильтр я использую System.Linq.Dynamic.Core

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
          var printedMaterials =
                mapplicationDbContext
               .InvoiceCommodities
               .AsNoTracking()
               .Include(f => f.Invoice)
               .Include(f => f.Commodity)
               .Where("Invoice.Sender.ID == @0", 3)
               .GroupBy("Commodity.ID");



Данная конструкция успешно отработала бы до EF core версии<3.0.
Однако сейчас при вызове я получаю ошибку "Client side GroupBy is not supported."
Соответственно, чтобы группировка произвелась, необходимо вызвать .AsEnumerable() перед группировкой(из описаний решения новых проблем с EF Core 3.1).

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
    var printedMaterials =
                mapplicationDbContext
               .InvoiceCommodities
               .AsNoTracking()
               .Include(f => f.Invoice)
               .Include(f => f.Commodity)
               .Where("Invoice.Sender.ID == @0", 3)
               .AsEnumerable()
               .GroupBy("Commodity.ID");



Но в таком случае отваливается метод-расширение GroupBy, потому что он ожидает IQueryable в качестве источника, а ему подсовывают IEnumerable.
Как можно заставить работать группировку?Спасибо
...
Рейтинг: 0 / 0
Группировка в EF core 3.1.2 c System.Linq.Dynamic.Core
    #39929313
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vb_sub
Но в таком случае отваливается метод-расширение GroupBy, потому что он ожидает IQueryable в качестве источника, а ему подсовывают IEnumerable.
Как можно заставить работать группировку?Спасибо


Сделайте сначала ToList, затем свою группировку, какую душе угодно.
...
Рейтинг: 0 / 0
Группировка в EF core 3.1.2 c System.Linq.Dynamic.Core
    #39929535
vb_sub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,
спасибо помогла, проблема была в том, что AsEnumerable от Linq.Dynamic.Core давал на выходе Ienumerable<dynamic>, а ToList давал список конкретных типов.
...
Рейтинг: 0 / 0
Группировка в EF core 3.1.2 c System.Linq.Dynamic.Core
    #39929691
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vb_sub,

Дело не в этом :)
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Группировка в EF core 3.1.2 c System.Linq.Dynamic.Core
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]