实体框架Linq to SQL创建重复项

时间:2020-08-05 15:04:20

标签: c# entity-framework asynchronous ef-code-first

我在异步任务中有一些代码,使用SingleOrDefaultAsync检查记录是否存在,如果不存在,那么它将创建它。

我一直间歇地注意到出现重复的条目。进一步的调查表明,创建记录的时间间隔为毫秒,这使我想到是否有多个线程尝试检查和写入相同的值。因此,在进行检查的时候,该值不存在,因此“线程1”将值写入数据库,但是“线程2”已经进行了相同的检查,还将值写入数据库。

对于在此代码周围放置信号量,我有些警惕,很遗憾,我也不能在本地复制它,但我可以100%看到它在生产中的发生。有什么建议吗?

0 个答案:

没有答案