Присоединение к группе в EF Core 3.1

Я пытаюсь сгруппировать присоединиться к EF core 3.1, проблема, которую он возвращает

Ошибка обработки DbSet выражения LINQ. Это может указывать на ошибку или ограничение в EF Core.

мой код такой

 var employees = await (from enrollment in RepositoryContext.Enrollments
                join allowance in RepositoryContext.Allowances.Include(y=>y.AllowanceType) on enrollment.EmployeeId equals allowance.EmployeeId
                    into allowances

                select new
                {
                    enrollment,
                    allowances

                }
            ).AsNoTracking().ToListAsync();

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


person Mustafa Mohamed    schedule 08.03.2020    source источник


Ответы (1)


Здесь Запрос с GroupBy или GroupJoin выдает исключение - это теперь закрытая проблема / обсуждение GitHub, где я был пытаюсь убедить команду EF Core добавить GroupJoin перевод. Они отказались это сделать и открыли бесполезный Query: Support GroupJoin, когда это последний оператор запроса №19930 где я продолжаю борьбу за такой перевод. Пожалуйста, перейдите сюда и прокомментируйте / проголосуйте за полный запрос на перевод.

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

join allowance in RepositoryContext.Allowances.Include(y => y.AllowanceType)
    on enrollment.EmployeeId equals allowance.EmployeeId
into allowances

с участием

let allowances = RepositoryContext.Allowances.Include(y => y.AllowanceType)
    .Where(allowance => enrollment.EmployeeId == allowance.EmployeeId)
person Ivan Stoev    schedule 08.03.2020
comment
Спасибо, я буду поддерживать и комментировать, использование let увеличит количество запросов в базе данных, я прав? - person Mustafa Mohamed; 08.03.2020
comment
@MustafaMohamed Больше голосов за запрос функции GitHub увеличивает вероятность того, что функция будет рассмотрена / реализована. - person Ivan Stoev; 08.03.2020