我们在使用TransactionScope时遇到了问题。TransactionScope为我们提供了在数据访问层中使用事务的非常好的灵活性。通过这种方式,我们可以使用隐式或显式事务。在下面的示例代码中,尽管隔离级别设置为ReadCommitted,但在提交主事务(在main方法中)之前,不可能从其他客户端对表testTable执行Select SQL语句,因为整个表上都有锁。sc = new TransactionScope(TransactionScopeOption.Required))
我们将隔离级别设置为读取未提交,如下所示。transaction = new TransactionScope(TransactionScopeOption.RequiresNew, to)) // Do Stufftransaction.Complete();问题是,一旦连接返回到池,它就不会被重置回默认的隔离级别,我理解这是通过设计()实现的。因此,当事务完成时,从池重用该连接的任何内容都将以读取未提交的隔离级别</