Когда я обновляю элемент, используя этот метод, я получаю исключение:
An object with the same key already exists in the ObjectStateManager. The ObjectStateManager cannot track multiple objects with the same key.
Это метод:
public void Set(TaskPrice entity)
{
bool isExists = GetQuery().Any(x => x.TaskId == entity.TaskId);
if (isExists)
{
ObjectStateEntry entry=null;
if (this.Context.ObjectStateManager.TryGetObjectStateEntry(entity, out entry) == false)
{
this.ObjectSet.Attach(entity);
}
this.Context.ObjectStateManager.ChangeObjectState(entity, EntityState.Modified);
}
else
{
this.ObjectSet.AddObject(entity);
}
}
Я предполагаю, что это исключение произойдет, потому что GetQuery().Any(x => x.TaskId == entity.TaskId);
присоединяет элемент из БД, а когда я присоединяю обновленную сущность, он говорит, что есть прикрепленный элемент с тем же идентификатором.
Как я могу решить эту проблему, чтобы метод обновился?