Я запрашиваю некоторые сущности из базового контекста ef и затем инициализирую dto:
IQueryable<EntityType> entities = _context
.Entities
.Where(q => true)
.GroupBy(q => q.SomeProperty)
.Select(g => new GroupedEntity { Key = g.Key, Entities = g });
var dto = new Dto(Whatever = "whatever");
Следующее работает нормально:
dto.List = entities
.ProjectTo<Dto>(_mapper.ConfigurationProvider)
.ToList();
Но если я попытаюсь сделать этот вызов asyn c, происходит сбой.
dto.List = await entities
.ProjectTo<Dto>(_mapper.ConfigurationProvider)
.ToListAsync();
Исключение:
Сообщение: ссылка на объект не установлена для экземпляра объекта. Источник: трассировка стека сборки DynamicMethods, размещенная анонимно:
в Microsoft.EntityFrameworkCore.Query.ExpressionVisitors.Internal.TaskLiftingExpressionVisitor. <_ ExecuteAsyn c> d__8 1.ExoveNext (). ExceptionDispatchInfo.Throw ()
в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Задача) в Microsoft.EntityFrameworkCore.Query.Internal.AsyncLinqOperatorProvider.Next.Exe. ExceptionDispatchInfo.Throw ()
в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Задача) в System.Runtime.CompilerServices.ConfiguredTaskAwaitable 1.ConfiguredTaskAyne.t. в D: \ a \ 1 \ s \ Ix.NET \ Source \ System.Interactive.Async \ Aggregate.cs: строка 128 в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw ()
в System.Runtime .CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Задача) в System.Runtime.CompilerServices.TaskAwaiter 1.GetResult () в Microsoft.EntityFrameworkCore.Query.ExpressionVisitors.Internal.Text> .Runtime.ExceptionServices. AsyncLinqOperatorProvider.AsyncSelectEnumerable 2.AsyncSelectEnumerator.d__3.MoveNext () в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw ()
в System.Runtime.CompilerServices.Task. .GetResult () в Microsoft.EntityFrameworkCore.Query.Internal.AsyncLinqOperatorProvider.ExceptionInterceptor 1.EnumeratorExceptionIntercepto r.d__5.MoveNext () в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw ()
в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (целевая задача) в System.Runtime.Compwa.AfigateAccessSigner. ) в System.Linq.AsyncEnumerable.d__6 3.MoveNext () в D: \ a \ 1 \ s \ Ix.NET \ Source \ System.Interactive.Async \ Aggregate.cs: строка 128 в System.Runtime.ExceptionServices.ExceptionDispatchInfo .Throw ()
в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Задача) в System.Runtime.CompilerServices.TaskAwaiter 1.GetResult ()
версии: 1025
целевой каркас: netcoreapp2.2 Entity Framework Core 2.2.6 AutoMapper 8.1.1