Проблема при обновлении сущности в EF Core
Я пытаюсь обновить сущность в репозитории, но у меня возникает ошибка:
System.InvalidOperationException: The instance of entity type
'CatalogItem' cannot be tracked because another instance with the same
key value for {'Id'} is already being tracked. When attaching existing
entities, ensure that only one entity instance with a given key value
is attached. Consider using '
DbContextOptionsBuilder.EnableSensitiveDataLogging' to see the conflicting key values.
Как её исправить?
Обновление происходит следующим образом:
public async Task UpdateAsync(CatalogItemUpdateParameters parameters, CancellationToken cancellationToken = default)
{
var catalogItem = await _catalogItemRepository.FirstOrDefaultAsync(parameters.Id, cancellationToken) ??
throw new ObjectNotFoundException($"Элемент каталога с Id {parameters.Id} не найден");
catalogItem.Name = parameters.Name;
catalogItem.UpdatedAtUtc = DateTime.UtcNow;
await _catalogItemModelValidator.ValidateAndThrowAsync(catalogItem, cancellationToken);
await _catalogItemRepository.UpdateAsync(catalogItem, cancellationToken);
}
public Task UpdateAsync(TModel model, CancellationToken cancellationToken = default)
{
var entity = _mapper.Map<TEntity>(model);
_dbContext.Entry(entity).State = EntityState.Modified;
_dbContext.Set<TEntity>().Update(entity);
return _dbContext.SaveChangesAsync(cancellationToken);
}
Источник: Stack Overflow на русском