Платформа Entity ToListAsync не работает, когда ToList работает ⇐ C#

Место общения программистов C#
Anonymous
Платформа Entity ToListAsync не работает, когда ToList работает

Сообщение Anonymous »

Я получаю список с помощью ToListAsync и получаю ошибку

Произошло исключение при переборе результатов запроса для типа контекста MyDbContextHere.
System.ObjectDisposeException: невозможно получить доступ к удаленному экземпляру контекста. Распространенной причиной этой ошибки является удаление экземпляра контекста, который был разрешен в результате внедрения зависимостей, а затем попытка использовать тот же экземпляр контекста в другом месте вашего приложения. Это может произойти, если вы вызываете Dispose для экземпляра контекста или заключаете его в оператор using. Если вы используете внедрение зависимостей, вы должны позволить контейнеру внедрения зависимостей позаботиться об удалении экземпляров контекста.

Но если я перейду на ToList, это сработает.< /p>
Не работает:

Код: Выделить всё

public async Task Handle(ListFoldersQuery request, CancellationToken cancellationToken)
{
var folders = request.FolderId == null
? await dbContext.Folders.Where(f => f.ParentFolderId == null).ToListAsync(cancellationToken)
: await dbContext.Folders.Where(f => f.Id == request.FolderId).ToListAsync(cancellationToken);
var result = mapper.Map(folders).ToList();
return Results.Ok(result);
}
Работаем

Код: Выделить всё

 public Task Handle(ListFoldersQuery request, CancellationToken cancellationToken)
{
var folders = request.FolderId == null
? dbContext.Folders.Where(f => f.ParentFolderId == null).ToList()
: dbContext.Folders.Where(f => f.Id == request.FolderId).ToList();
var result = mapper.Map(folders).ToList();
return Task.FromResult(Results.Ok(result));
}
Минимальный API Asp .net, регистрация контекста базы данных, postgresql в Program.cs:

Код: Выделить всё

services.AddDbContext(options =>
options.UseNpgsql(configuration.GetConnectionString("ClientShareDbConnection")));
Это какая-то проблема с асинхронностью/ожиданием, которую я вызываю?

Подробнее здесь: https://stackoverflow.com/questions/791 ... olist-does

Вернуться в «C#»