Entity Framework Linq для SQL создания повторяющихся записей - PullRequest
0 голосов
/ 05 августа 2020

У меня есть код в асинхронной задаче, который проверяет, существует ли запись, используя SingleOrDefaultAsyn c, а если нет, то создает ее.

Время от времени я замечал появление повторяющихся записей . Дальнейшее расследование показывает, что записи создаются с интервалом в несколько миллисекунд, что заставляет меня думать, что несколько потоков пытаются проверить и записать одно и то же значение. Таким образом, в момент, когда происходит проверка, значение не существует, поэтому «поток 1» записывает значение в базу данных, но «поток 2» уже выполнил такую ​​же проверку и также записывает значение в базу данных.

Я немного опасаюсь помещать семафор в этот код, и, к сожалению, я также не могу воспроизвести его локально, но я могу на 100% увидеть, как это происходит в продакшене. Есть совет?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...