2012-10-10 5 views
0

У меня есть хранилище с использованием EF 4.1 и DbContext при обновлении объекта я получаю эту ошибкуОптимистичные обновления параллелизма с помощью Entity Framework

обновление магазина, вставку или удаление заявления повлияло неожиданное количество строк (0) , Объекты могут быть изменены или удалены, поскольку объекты загружены. Обновить ObjectStateManager записей.

Я полагаю, что это связано с оптимистичными обновлениями параллелизма. Любая идея, как его решить?

public void UpdateAddingCandidate(Event eventObj, int candidateId) 
    { 
     Candidate newCandidate = db.Candidates.AsNoTracking().FirstOrDefault(x => x.CandidateId == candidateId); 
     eventObj.Candidate = newCandidate; 
     eventObj.CandidateId = newCandidate.CandidateId; 
     db.Entry(eventObj).State = EntityState.Modified; 
    } 

ответ

0

Просмотрите объект ObjectContext.Refresh, который позволяет обновлять объекты из базы данных. Вы можете установить RefreshMode в ClientWins или StoreWins.

Использовать Try ... Ловить логику и обработать конфликт в улове, чтобы принудительно внести изменения с помощью ClientWins или вывести измененные данные в контекст и перезапустить редактирование. В большинстве случаев последний - лучший подход.

Смежные вопросы