Приложение Asp.net MVC Core 2.2 аварийно завершает работу, когда выражение LINQ, которое использует комбинацию предложений Include, Orderby
и AutoMapper ProjectTo<T>
. Ниже приведено исключение, вызванное приложением.
Невозможно привести объект типа
«System.Linq.Expressions.PropertyExpression» для ввода
'Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression'.
Поведение этого выражения LINQ непредсказуемо, потому что время от времени оно работает, а иногда оно ломается. Я пробовал загружать Eager и Lazy, но все равно получаю ту же ошибку.
recordList = await db.SchoolProfile
.Include(i => i.Category)
.Include(i => i.District)
.Include(i => i.SchoolAddress.Address)
.Include(i => i.SchoolAddress.Coordinates)
.OrderBy(o => o.Name.Length)
.ProjectTo<SchoolProfileViewModel>(mapper.ConfigurationProvider)
.ToListAsync();
Та же ошибка выдается даже без Include
Предложение:
recordList = await db.CurricularActivity
.OrderBy(o => o.Activity.Length)
.ProjectTo<CurricularActivityViewModel>(mapper.ConfigurationProvider)
.ToListAsync();
Удаление Activity.Length
, кажется, работает, но почему он нарушает код, но тот же запрос работает в другом месте?
Поэтому я был бы признателен за некоторые рекомендации по решению этой проблемы.
Я был бы очень признателен, узнав, почему это происходит, и понимая, как решить эту проблему, чтобы я мог писать более эффективные и безошибочные выражения LINQ