C# 使用可重复读取隔离级别sql时死锁
最近我的团队在asp.NETC上做了一个项目。它是将这些特性添加到由其他公司完成的现有项目中 这是一辆购物车。当用户在非常罕见的情况下下下订单时,我们会遇到死锁的情况,通过entripise库建立的数据库连接会完全丢失 错误:事务进程ID 89在锁资源上被死锁 已被选为死锁牺牲品。重播 交易 所以我们寻找了各种各样的死锁发生的原因,最终我们知道了死锁的确切原因 原因:C# 使用可重复读取隔离级别sql时死锁,c#,sql,C#,Sql,最近我的团队在asp.NETC上做了一个项目。它是将这些特性添加到由其他公司完成的现有项目中 这是一辆购物车。当用户在非常罕见的情况下下下订单时,我们会遇到死锁的情况,通过entripise库建立的数据库连接会完全丢失 错误:事务进程ID 89在锁资源上被死锁 已被选为死锁牺牲品。重播 交易 所以我们寻找了各种各样的死锁发生的原因,最终我们知道了死锁的确切原因 原因: DBWrapper wrapper = new DBWrapper(true,System.Data.IsolationLeve
DBWrapper wrapper = new DBWrapper(true,System.Data.IsolationLevel.RepeatableRead);
使用IsolationLevel.RepeatableRead导致死锁问题
所以我对sql中的锁概念知之甚少
预期进展:
1计划更改隔离级别,其行为与隔离级别类似。可重复读取并防止死锁发生
2或在代码中保持相同的隔离级别,并使用任何锁进行sql查询
概念,并使其成功运作
请注意,这是我们最优先考虑的问题。。。您的想法将受到高度赞赏
请建议我如何处理预期的解决方案。是否需要使用可重复读取?您不能使用Read Committed吗?我的建议如下:我认为这会有所帮助:隔离级别只是问题的一部分。这些查询实际上是死锁。这个问题没有关于他们的任何信息。就目前而言,没有什么有用的答案。