LINQ + TransactionScope 不会更改 SQL Server Profiler 中的隔离级别

2024-04-29

我使用以下格式通过 linq 提交对数据库的更改。

Begin Transaction (Scope Serialized, Required)
    Check Business Rule 1...N
    MyDataContext.SubmitChanges()
    Save Changes Done In Previous Query To Log File
End Transaction Scope

但在 SQL Server 探查器中,我在 Connection:Start 中看到以下行。

set transaction isolation level read committed

我经历过这个(http://social.msdn.microsoft.com/Forums/en-US/adodotnetentityframework/thread/93a45026-0425-4d49-a4ac-1b882e90e6d5 http://social.msdn.microsoft.com/Forums/en-US/adodotnetentityframework/thread/93a45026-0425-4d49-a4ac-1b882e90e6d5)并认为我有答案;

直到我在 Microsoft Connect 上看到这个(https://connect.microsoft.com/VisualStudio/feedback/details/565441/transactionscope-linq-to-sql?wa=wsignin1.0)。

有人可以告诉我我的代码是否实际上是在序列化隔离级别下执行的,还是实际上只是在已提交的读下运行?


这取决于您如何创建交易。

如果您执行内联 SQL 来开始它(EG.BEGIN TRAN),L2S 不会意识到该事务,并且会在其中启动一个新的嵌套事务READ COMMITTED.

但是,如果您使用 System.Transaction,或者在您的计算机上设置了事务DataContext, SubmitChanges 将参与该事务。

如果您选择TM: Begin Tran and TM: Commit Tran事件类。

注意:ADO.Net 不会发出问题BEGIN TRAN也不存在问题SET TRANSACTION ISOLATION在批次中,这是在较低级别完成的。

If you really想要确认该行为,请在表上创建一个触发器,将当前隔离级别插入到日志记录表中并对其进行检查。

您可以通过运行以下命令来获取当前的隔离级别:

SELECT CASE transaction_isolation_level 
WHEN 0 THEN 'Unspecified' 
WHEN 1 THEN 'Read Uncommitted' 
WHEN 2 THEN 'Read Committed' 
WHEN 3 THEN 'Repeatable Read' 
WHEN 4 THEN 'Serializable' 
WHEN 5 THEN 'Snapshot' END AS TRANSACTION_ISOLATION_LEVEL 
FROM sys.dm_exec_sessions 
where session_id = @@SPID
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

LINQ + TransactionScope 不会更改 SQL Server Profiler 中的隔离级别 的相关文章

随机推荐

  • 将命令行参数传递给可运行的 JAR [重复]

    这个问题在这里已经有答案了 我从 Eclipse 项目构建了一个可运行的 JAR 用于处理给定的 XML 文件并提取纯文本 但是 此版本要求将该文件硬编码在代码中 有没有办法做这样的事情 java jar wiki2txt enwiki 2
  • Apache NiFi 替换文本处理器以使用控制字符作为分隔符

    在将固定宽度文件转换为用普通字符 如 分隔时使用替换文本处理器 作为分隔符正在起作用 然而 考虑 u0001 或 A 或 A 并不能按预期工作 使用您可以使用的特殊字符literal unescapeXmlnifi表达函数 literal
  • 如何将 JavaScript 数组转换为特定的对象列表

    我有一个像这样的数组 empName Sushant departments HR DEV empName Prashant departments HR MNGT 我想把这个数组转换成 Sushant HR Prashant HR Sus
  • React 有传递 props 的简写吗?

    我厌倦了一直这样做
  • RxJava 相当于 orElse 是什么

    在其他语言的流 函数域中有一个常见的操作 那就是 orElse 它就像一个 if 当当前链没有得到任何结果时 它会更改为备用链 在具有 Maybe 类型的语言中 它基本上会继续 Some 类型的链或更改为 None 类型的 orElse 理
  • 添加样式后如何重置回默认CSS?

    基本上 我通过添加如下样式类来更改 javafx 中文本字段的 css textfield getStyleClass add textfieldstyle 但后来我希望能够将其恢复到原来的样子 但由于本例中的原始外观是 JavaFX 的默
  • Xcode 6 找不到 cocoapods 库

    我正在尝试构建一个使用 CocoaPods 的 Xcode 5 项目 POD 文件如下 target MyProjectName do pod AFNetworking 2 2 1 pod SVProgressHUD 0 9 pod MDH
  • 出现致命错误 Uncaught CurlException: 26: 无法打开文件

    我正在尝试使用 PHP 的 GD 库创建朋友的动态图像 并且需要将其上传到我的朋友个人资料中 但我不断收到错误消息 致命错误 未捕获的 CurlException 26 无法打开第 820 行 home p170r760 public ht
  • “不能从静态上下文引用非静态方法”JPA Java

    我从这一行收到 无法从静态上下文引用非静态方法 错误 createStudent stu00001 new Date 631152000000 m WB new Type Name Bob Smith 如何正确组成 日期 我查看了 API
  • 虚拟类作为 Spirit 的 AST 节点

    我当时正在和一个朋友一起开发一种语言的解释器 我们从一个我猜想不太明智的决定开始 我们首先制作所有用于执行的元素 实际上是由不同类组成的树 但现在看着 boost 的例子 我对如何合并两者感到很困惑 我知道从什么开始 语法 我知道要达到什么
  • ImportError:尝试在没有已知父包的情况下进行相对导入[重复]

    这个问题在这里已经有答案了 我正在学习使用 python 编程 并且在从包中的模块导入时遇到问题 我正在使用 Visual Studio 代码和 Python 3 8 2 64 位 我的项目目录 https i stack imgur co
  • 通过getattr动态获取dict元素?

    我想动态查询我想要检索的类中的哪些对象 getattr似乎是我想要的 并且它对于类中的顶级对象表现良好 但是 我还想指定子元素 class MyObj object def init self self d a 1 b 2 self c 3
  • 如何分叉我自己的 GitHub 存储库?

    所以 Git 的完全新手 阅读了指南 认为我已经具备了基础知识 但在实现这一目标时遇到了困难 我为我的通用标记源代码创建了一个存储库 只是我每次突破时都会重复使用的东西 它被称为markupDNA git 我想在我的 mac 站点目录中有不
  • 如何使用 Retrofit 2 下载 pdf 文件

    我在下载带改造的 pdf 文件时遇到困难 我的代码生成了一个文件 但它的大小错误 并且当 pdf 打开时它是空白的 这就是我的 php web 服务返回 pdf 文件的方式 param Slim Slim app param String
  • 如何打开电子邮件应用程序到特定文件夹PowerShell?

    我想从 PowerShell 打开特定帐户内特定文件夹的 Windows Mail 应用程序 这可能吗 我从中学到了这个帖子 https stackoverflow com questions 37331949 how to start m
  • 更改 WPF 中 Canvas 的坐标系

    我正在编写一个地图应用程序 它使用 Canvas 来定位元素 对于每个元素 我必须以编程方式将元素的纬度 经度转换为画布的坐标 然后设置 Canvas Top 和 Canvas Left 属性 如果我有一个 360x180 画布 我可以将画
  • Grails 中 findAll、getAll 和 list 的区别

    使用 Grails 有多种方法可以完成同一件事 查找所有域类实例 Book findAll Book getAll Book list 检索指定 id 的域类的实例 Book findById 1 Book get 1 你什么时候使用每一个
  • joomla 中的文章存储在哪里?

    抱歉 这可能是一个新手问题 我要进入管理的文章管理器部分 我确实看到了一些文章 但我想知道这是存储这些文章的表 我只是在数据库中看到很多表 但我无法猜测哪些表存储了文章管理器的内容 Thanks jos content是保存文章的表 jos
  • MobX - 当我可以在将数据注入 React 组件时使用“inject”时,为什么我应该使用“observer”

    MobX 文档建议我应该使用observer在我的所有组件上 然而 通过使用注入 我可以更细粒度地控制哪些数据导致组件的重新渲染 我的理解是我observer 最后一次渲染中所有访问的可观察量的更改将导致重新渲染 即使可观察量嵌套在数据存储
  • LINQ + TransactionScope 不会更改 SQL Server Profiler 中的隔离级别

    我使用以下格式通过 linq 提交对数据库的更改 Begin Transaction Scope Serialized Required Check Business Rule 1 N MyDataContext SubmitChanges