【发布时间】:2021-07-12 04:03:38
【问题描述】:
所以我有这个对数据库的读取查询,我想为 ORM 指定一个 NO-LOCK(EF、Npoco、Nhibernate、LinqToSql),因此我将它包装在事务范围中并指定了事务选项,即ReadUncommitted (NOLOCK) 的枚举 [所有努力防止数据库死锁]
挑战是我得到一个异常“指定的参数超出了有效值的范围。参数名称:transactionIsolationLevel”即使transactionScope构造函数基于所需的值是正确的。
我不会退出 IsolationLevel 枚举,因此我不希望在运行时引发超出范围的异常。
如果您遇到过此类错误或熟悉类似的情况。请提供帮助。
谢谢,下面是代码示例。 [Using scope As Transactions.TransactionScope = New Transactions.TransactionScope(Transactions.TransactionScopeOption.Required, transactionOptions)]抛出异常
Dim transactionOptions = New Transactions.TransactionOptions()
transactionOptions.IsolationLevel = IsolationLevel.ReadUncommitted
transactionOptions.Timeout = Transactions.TransactionManager.MaximumTimeout
Using scope As Transactions.TransactionScope = New Transactions.TransactionScope(Transactions.TransactionScopeOption.Required, transactionOptions)
Using db As New DbContext
'Ambient transaction
End Using
End Using
【问题讨论】:
-
可能是您的底层数据提供者不支持
Read Uncommitted隔离级别。你的数据库引擎是什么? -
它甚至还没有到达数据库调用,数据库引擎:SQL Server (MSSQLSERVER)
标签: c# asp.net asp.net-mvc vb.net asp.net-core