【AICon】 如何构建高效的 RAG 系统?RAG 技术在实际应用中遇到的挑战及应对策略?>>> 了解详情
写点什么

ADO.NET 和 LINQ 中古怪的事务特性

  • 2007-08-17
  • 本文字数:563 字

    阅读完需:约 2 分钟

LINQ 中的事务 依赖于 TransactionScope ,一个使用依赖全局变量的非 OO 设计模式的.NET 2.0 类。

TransactionScope 被用来为一组变化设置事务。不像在 ADO.NET 中的事务对象,TransactionScope 不限于一个单独的数据库链接。它最常用的一个案例是在多台服务器上运行一个事务。

当一个 TransactionScope 对象被创建时,它会自动将自己注册成线程的事务。所有的事务感知操作也将会自动地使用这个事务,而不需要将事务对象传递给对象。事务感知对象的例子包括 SQLCommand 类和 LINQ to SQL 对象。

这种设计的一个比较严重的副作用是事务和操作间的连接不是那么直接。

Public Sub OperationWithTransaction() <br></br> Using t As New Transactions.TransactionScope <br></br> Operation1() <br></br> t.Complete() <br></br> End Using <br></br>End Sub就上面的这个例子,当 OperationWithTransaction 被调用时,Operation1 函数中的所有动作都和事务相关联。就是在事务并没 有明确传递给方法的时候,这种情况也会发生。这就使得对 Operation1 的调试变得有些复杂,尤其是在堆栈跟踪(Stack Trace)上事务范围(transaction scope)被创建了多个层时。

最后需要提醒的是,在使用多线程时,一个给定的 TransactionScope 只能应用在当前线程上。

查看英文原文: The Curious Nature of Transactions in ADO.NET and LINQ

2007-08-17 11:23701

评论

发布
暂无评论
发现更多内容

Python进阶丨如何创建你的第一个Python元类?

华为云开发者联盟

Python 编程 python元类 对象 装饰器

数字化人才有哪些特性?

boshi

数字化转型 七日更

从架构设计理念到集群部署,全面认识KubeEdge

华为云开发者联盟

架构 容器 云原生 集群 kubeedge

MyChat,一个私有的“微信“

米凤君

Java 微信 Netty IM JavaFx

第4周左右

林亚超

第十一周 学习总结

简简单单

华云大咖说 | 大型分布式监控系统建设经验

华云数据

笔记本电脑电池显示4%可用(已接通电源),经过清灰又莫名奇妙的可以续航啦,很奇怪!

孙叫兽

电脑故障 电池

图文详解:如何给女朋友解释什么是微服务?

浅羽技术

Java zookeeper 分布式 微服务 框架

使用Travis CI为工程搭建一个持续集成服务。

梁龙先森

大前端 持续集成 2月春节不断更

同时拿到BATJMD的Offer是怎样的一种体验?

冰河

面试 面经 offer 一起进大厂 BATJMD

大学寒假这样过,过完惊艳所有人,不只是你的宿友,还有千千万万个程序员同行们!!!

沉默王二

程序员

3. 无转折不编程,滚雪球学 Python

梦想橡皮擦

Python python从入门到精通 2月春节不断更 python入门

如何极速极速搭建个人博客?Copy攻城狮用的这一招很优秀!

华为云开发者联盟

JavaScript typescript GitHub React #Serverless

一看就懂的var、let、const三者区别

蛙人

JavaScript

研发效能,productivity 还是 performance

李小腾

程序员防猝死指南

小白debug

程序员 职业 内存 打工人 Go 语言

即拼商城模式开发

luluhulian

我用 Python 分析了一波热卖年货,原来大家都在买这些东西?

JackTian

Python 数据分析 数据可视化 2月春节不断更 年货

第6周作业

MR.X

嘿,同学,你要的Java内存模型(JMM)来了

Simon郎

Java 大数据 JVM

ARTS打卡 第30周

引花眠

微服务 ARTS 打卡计划

京东App Swift 混编及组件化落地

京东科技开发者

swift 开发者

记录一次BAT一线互联网公司前端JavaScript面试

我是哪吒

JavaScript 学习 面试 大前端 2月春节不断更

第十一周 安全稳定知识课后作业

简简单单

编程范式( Programming paradigm )简介

引花眠

编程范式

华为 Python网络自动化

艺博东

Python 网络

经典面试题:在浏览器地址栏输入一个 URL 后回车,背后发生了什么

飞天小牛肉

程序员 面试 计算机网络 网络协议 2月春节不断更

对接量化钱包区块链开发

v16629866266

ZEGO即构自建MSDN有序网络,为实时音视频传输极致顺畅!

ZEGO即构

Redis Sentinel 源码:Redis的高可用模型分析

华为云开发者联盟

数据库 redis 高可用 框架 redis sentinel

ADO.NET和LINQ中古怪的事务特性_.NET_Jonathan Allen_InfoQ精选文章