Платформа 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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