Method1()实例化TransactionScope并调用Method2()(也实例化TransactionScope)时,.NET如何知道两者在同一作用域中? 我相信它不会在内部使用静电方法,否则它在像ASP.Net这样的多线程应用程序上不会工作得很好.

是否可以创建我自己的类似TransactionScope的类,或者最初的类是否使用只有Microsoft才知道其工作原理的特殊功能?

推荐答案

希望这有助于:

http://msdn.microsoft.com/en-us/magazine/cc300805.aspx

对于那些不熟悉TransactionScope的人来说,它是Microsoft®.NET Framework 2.0新增的System.Transaction命名空间的一部分.System.Transaction提供了一个完全集成到.NET Framework中的事务框架,包括但不限于ADO.NET.Transaction和TransactionScope类是此命名空间中最重要的两个类.正如该问题所暗示的,您可以创建一个TransactionScope实例,并且在该TransactionScope范围内执行的ADO.NET操作将自动登记(您也可以通过Transaction.Current静电属性访问当前事务):

using(TransactionScope scope = new TransactionScope())
{
    ... // all operations here part of a transaction
    scope.Complete();
}

Database相关问答推荐

如何将对象源动态设置为子窗体

1-2400之间格式奇怪的时间数据

使用 prisma ORM 在我的迁移中手动添加触发器

哪个能够存储 1 亿条记录的嵌入式数据库具有高效的 C 或 C++ API

如何在 SQL Server 中将索引从一个表复制到另一个表

如何验证 SQLAlchemy ORM 中的列数据类型?

将图像文件存储在 Mongo 数据库中,这是个好主意吗?

将少量信息保存为 android 中的设置

是否有任何数据库支持自动索引创建?

如何在一行中显示 redis 中的所有键?

在现有数据库上使用 liquibase

在哪里可以找到 neo4j 快速教程?

SQL - 如何转置?

如何从数据库中解析时间

数据库与微服务的一致性

PostgreSQL 唯一索引和字符串大小写

ORM 还是Vietnam of Computer Science吗?

从原始物理文件中恢复 postgreSQL 数据库

SQLite3 数据库的最大连接数是多少?

使用 oracle sql developer 从一个数据库复制到另一个数据库 - 连接失败