c# - Entity Framework Linq to SQL 创建重复条目
问题描述
我在异步任务中有一些代码使用 SingleOrDefaultAsync 检查记录是否存在,如果不存在,则创建它。
我间歇性地注意到出现了重复的条目。进一步的调查表明,记录的创建时间相隔几毫秒,这让我想到是否有多个线程试图检查和写入相同的值。所以在检查发生的那一刻,值不存在,所以“线程 1”将值写入数据库,但“线程 2”已经完成了相同的检查,并将值写入数据库。
我对在这段代码周围放置信号量有点谨慎,不幸的是我也无法在本地复制它,但我可以 100% 看到它在生产中发生。有什么建议吗?
解决方案
推荐阅读
- javascript - 为什么在使用 passport.js 进行身份验证时,我收到 TypeError:无法读取未定义的属性“0”?
- node.js - 尝试运行“npm run serve:dev”时出现“错误:请手动安装 pg 包”?
- asp.net - 将其他文本框应用于文件上传
- python - 合并字符串检查器
- reactjs - 使用反应钩子操作数组
- c - 链接静态库与动态库的问题
- rust - 一揽子 impl、HRTB 和“impl”抽象返回类型:“预期绑定生命周期参数”
- android - 如何修复与十字路口地理编码反向地址相关的错误?
- javascript - 如何从当前 URL 获取路由名称
- excel - Excel - 找到包含 X 元素的最佳数量