首页 > 解决方案 > Entity Framework Linq to SQL 创建重复条目

问题描述

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

我间歇性地注意到出现了重复的条目。进一步的调查表明,记录的创建时间相隔几毫秒,这让我想到是否有多个线程试图检查和写入相同的值。所以在检查发生的那一刻,值不存在,所以“线程 1”将值写入数据库,但“线程 2”已经完成了相同的检查,并将值写入数据库。

我对在这段代码周围放置信号量有点谨慎,不幸的是我也无法在本地复制它,但我可以 100% 看到它在生产中发生。有什么建议吗?

标签: c#entity-frameworkasynchronousef-code-first

解决方案


推荐阅读