Re: Транзакции,MySql,EntityFramework
От: Somescout  
Дата: 13.07.15 09:57
Оценка:
Как я понимаю этот код выполняется в нескольких потоках, проверка существования и создание новой записи неатомарна и потому возможно задвоение записей при любом режиме изоляции транзакций. На мой взгляд есть два решения:
* Блокировка — программная (есть программа выполняется в одном экземпляре) или эксклюзивная блокировка таблицы (строк или всей таблицы), которая предотвращает возможность работы с таблицей двух потоков одновременно.
* Добавление уникального индекса — не знаю, насколько это возможно в вашей базе, но в этом случае будет корректно возникать исключение при выходе из транзакции с откатом всех изменений.
ARI ARI ARI... Arrivederci!
Отредактировано 13.07.2015 11:18 Somescout . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.