@artshelom

Как убрать отслеживание объекта при сохранении?

Пытаюсь сделать обновление объекта,но при обновлении пишет ошибку:
The instance of entity type 'Route' cannot be tracked because another instance with the same key value for {'KeyRoute'} 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.

Мой код:
Route routeOld = _dbContext.Routes.Where(a => a.ApplicationUserId.Equals(user.Id) && a.KeyRoute.Equals(routeSave.KeyRoute)).ToList()[0];//
					_dbContext.SaveChanges();
					if (routeOld == null)
					{
						_dbContext.Routes.Add(routeSave);
					}
					else
					{
						//идет некая проверка между routeOld и routeSave они имеют одинаковый идентификатор
 						_dbContext.Routes.Update(routeSave);
					}
				}
  • Вопрос задан
  • 6797 просмотров
Решения вопроса 1
@kttotto
пофиг на чем писать
Всего скорей, Вы руками создали объект routeSave с айдишником, который уже есть в базе и пытаетесь его добавить. Если Вы хотите изменить существующий объект, то его сначала надо получить, но только не вот так, как Вы это делаете
.ToList()[0]
а так
_dbContext.Routes.FirstOrDefault(a => a ...
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы