Entity Framework 5 - " Обнаружены Конфликтующие Изменения"

в нашем приложении EF 5, Когда мы получаем ошибку взаимоблокировки SQL Server при вставке или обновлении, мы немедленно повторяем операцию. Однако, когда мы пытаемся сделать это, мы получаем следующую ошибку:

"Conflicting changes detected. This may happen when trying to insert multiple entities with the same key."

эта ошибка не поступает из SQL Server. Это ошибка EF 5. И мы не пытаемся вставить несколько объектов с одним и тем же ключом. IOW, мы не пытаемся вставить дубликат строки. Однако я подозреваю, что эта ошибка означает нечто другое. Но я не совершенно уверен, что знаю, в чем дело. Если бы мне пришлось угадать, я бы сказал, что с первой попытки EF видит, куда пытается вставить объект. Он терпит неудачу из-за тупика. Когда мы немедленно пробуем снова, EF думает, что мы пытаемся сделать ту же самую операцию снова, с тем же ключом, и ему это не нравится. Не знаю, как это обойти.

1 ответов


похоже, вы пытаетесь выполнить свои запросы к тому же экземпляру DbContext. В этом случае ваши изменения уже ожидаются с последней попытки.

поскольку в контексте нет" отменить ожидающие изменения", вы должны удалить и воссоздать контекст между"повторными попытками".