- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 LINQ TO SQL 在现有事务中执行具有未提交读取隔离级别的查询。如果我使用该选项从父事务中抑制此事务,那么我似乎失去了指定隔离级别的能力。在 LINQPad 中使用此代码:
void Main()
{
var db = this;
db.ExecuteQuery<string>(@"SET TRANSACTION ISOLATION LEVEL SERIALIZABLE");
using (var trans = new TransactionScope(TransactionScopeOption.Required))
{
// updates or inserts here
using (new TransactionScope(TransactionScopeOption.Suppress,
new TransactionOptions { IsolationLevel = System.Transactions.IsolationLevel.ReadUncommitted }))
{
db.ExecuteQuery<string>(@"SELECT CASE transaction_isolation_level
WHEN 0 THEN 'Unspecified'
WHEN 1 THEN 'ReadUncomitted'
WHEN 2 THEN 'Readcomitted'
WHEN 3 THEN 'Repeatable'
WHEN 4 THEN 'Serializable'
WHEN 5 THEN 'Snapshot' END AS TRANSACTION_ISOLATION_LEVEL
FROM sys.dm_exec_sessions
where session_id = @@SPID
").Dump("Inside the transaction");
}
// updates or inserts here
}
}
我得到了可串行化的结果。有没有办法在事务内运行查询并将隔离级别更改为读取未提交?
最佳答案
您要使用的是TransactionScopeOption.RequiresNew
。 Supress
选项使您的封闭 block 在没有环境事务的情况下运行,也无需创建新的事务。这就是它的作用。
RequiresNew
导致创建一个新的根事务范围。
参见 this article 中的汇总表关于不同选项的行为方式。
有关抑制
的更多信息:
Suppress is useful when you want to preserve the operations performed by the code section, and do not want to abort the ambient transaction if the operations fail. For example, when you want to perform logging or audit operations, or when you want to publish events to subscribers regardless of whether your ambient transaction commits or aborts.
关于.net - 为什么在 .net 中使用 TransactionScopeOption.Suppress 时会忽略隔离级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16743347/
我有一个报告,当前以以下格式显示数据: GROUP HEADER January Meter Number Name Class Facility ... .
我有一份报告目前以下列格式显示数据: GROUP HEADER January Meter Number Name Class Facility ... ..
我有一个 WPF ListView 控件,其中包含一个用 XAML 代码编写的 ContextMenu。每次右键单击 ListView 时,即使 ListView 中没有任何项目,也会显示 Conte
在我刚接手的一个应用中发现了这一行,感觉没什么意义。 使用 (new TransactionScope(TransactionScopeOption.Suppress, new TimeSpan(1,
我目前正在学习一些基本的 java SQL 编码,为我的 SQL 项目制作基本的终端 UI。我一直在使用 PostgreSQL 我正在使用PreparedStatement为了确保自己免受 SQL 注
我已经实现了 native Android SIP solution在我的 Android 应用中。 SipProfile.Builder builder = new SipProfile.Build
我正在将指南支持库检查器集成到我的一个项目中。 Microsoft.CppCoreCheck Microsoft.Gsl 当我运行它时,我从标准库、glm、boost 等包含的库中得到了一堆错误。 一
我只是希望我的方法调用能够抑制它依次调用的方法中可能出现的所有“NoMethodError”异常。 def foo begin bar1 bar2 rescue Excepti
我最近开始尝试 clang-tidy llvm的工具。现在我试图抑制来自第三方库代码的错误警告。为此,我想使用命令行选项-header-filter=或 -line-filter=但到目前为止没有成功
我必须为 Kendo Grid 创建一个自定义的“更新”按钮。 基本上,它以编程方式将适当的行置于编辑模式(使用 editRow),将某些字段更新为特定值(使用 model.set),然后保存该行(使
我正在使用 Visual Studio 2015、FxCop 14.0。使用自定义规则,并尝试在 GlobalSuppressions.cs 中抑制消息。我在项目文件中设置了全局抑制的路径 .. .
我想回滚名为“scope”的事务,但名为 scope2 的内部事务不应回滚。但是他们都回滚了!!!选项 TransactionScopeOption.Suppress 不起作用... 我已经启用了 D
你好, 是否可以控制可以拖动哪些记录以及可以将它们放到哪里(在悬停期间从头开始或中间抑制拖动操作)? 我需要的详细信息如下: 我有一个包含一些组(比如男性和女性)的网格,只想激活组“女性”内的 d&d
以下(废话)Python模块的doctest失败: """ >>> L = [] >>> if True: ... append_to(L) # XXX >>> L [1] """ def ap
在git push heroku master上,我收到此错误: Unable to find suppressions file at location: etc/config/checkstyle
我正在尝试安装 Taiga在我的电脑上,对于其中一个脚本,它试图 import suppress 但失败了。我尝试手动执行此操作: (taiga)$ python Python 3.3.3 (defa
有时我会为某些可能运行我的应用程序的 Android 版本列出代码。使用最新 Android 工具的 Eclipse 仍然注意到我的 Manifest 文档允许较低版本的 Android,因此确定我的
我的 Android 项目中某处有这段代码: public boolean isLoadInProgress(boolean privateLoad, boolean publicLoad) {
我一直在开发一个通过 Android Beam 发送 NDEF 消息的 Android 应用程序和一个接收它们的桌面应用程序。 一切正常;但是,我个人认为 Android Beam“Tab to be
我正在使用 xlrd 来处理 Excel 文件。我在包含许多文件的文件夹上运行脚本,并且正在打印与这些文件相关的消息。但是,对于我运行的每个文件,我也会收到以下 xlrd 生成的错误消息: WARNI
我是一名优秀的程序员,十分优秀!