自动事务和 .NET Framework 类

只要准备了 .NET Framework 类参与自动事务,此类的实例就可以参与自动事务。类实例或对象访问的每个资源都在事务中登记。例如,如果一个对象使用 ADO.NET 向数据库中某帐户上存钱,此数据库的资源管理器将确定该对象是否在事务中执行。如果对象是在事务中执行,则资源管理器自动在事务中登记此数据库。

若要使对象参与事务,请将 TransactionAttribute 属性应用于它的类。应用 Transaction 属性时,可以交替使用 Transaction、transaction、TransactionAttribute 和 transactionattribute。

如何:在 .NET Framework 类中使用自动事务中,详细介绍了准备类来参与自动事务的过程。

Transaction 属性使用以 TransactionOption 枚举作为参数的构造函数。下表说明了 TransactionOption 枚举的可能值。

属性值 说明

Disabled

消除对象的自动事务控制。应用此属性值的对象可以直接连接到分布式事务处理协调器 (DTC) 以获取事务性支持。

[Transaction(TransactionOption.Disabled)]

NotSupported

指明对象不在事务范围内运行。处理请求时,不管是否有活动事务,均在没有事务的情况下创建其对象上下文。

[Transaction(TransactionOption.NotSupported)]

Supported

指明如果有事务,则对象在现有事务的上下文中运行。如果没有事务,则对象在没有事务的情况下运行。

[Transaction(TransactionOption.Supported)]

Required

(默认值)

指明对象需要事务。如果有事务,则对象在现有事务范围内运行。如果没有事务,则对象启动一个事务。

[Transaction(TransactionOption.Required)]

RequiresNew

指明对象需要事务且针对每个请求启动一个新事务。

[Transaction(TransactionOption.RequiresNew)]

请参见

任务

如何:在 .NET Framework 类中使用自动事务

概念

自动事务中的投票

其他资源

编写服务组件

Footer image

版权所有 (C) 2007 Microsoft Corporation。保留所有权利。