Двойные записи в Async-Db-Requests - PullRequest
0 голосов
/ 07 октября 2019

Следующий код дает 2 записи, но ожидается как минимум одна.

 /// <inheritdoc />
  public async Task<T> GetAsync<T>(Guid id, CancellationToken cancellationToken)
     where T : class
  {
     var entity = await Set<T>().FindAsync(new[] { id }, cancellationToken);

     return entity ?? throw new NotFoundException(typeof(T).Name, id);
  }

Данный объект подписан «одним», поэтому только один объект может вернуться из БД.

Действия по воспроизведению

вызовите GetAsync (model.Id, cancellationToken), чтобы получить хотя бы одну информацию. Таблица базы данных содержит только одну строку, которая должна быть возвращена.

Дополнительные технические сведения

EF Core версия: 3.0 Поставщик базы данных: Pomelo.EntityFrameworkCore.MySql Целевая структура: .Net Core 3.0 Операционная система: Mac OS IDE: Rider

1 Ответ

0 голосов
/ 07 октября 2019

Вам нужно использовать var entity = await Set (). FindAsync (new object [] {id}, cancellationToken) ;. Эта функция имеет две перегрузки, и в вашем случае cancellationToken интерпретировался как второй параметр.

...