事务确保对给储存区做出的更改均被视为可提交或可回滚的组。
继承层次结构
System.Object
System.MarshalByRefObject
Microsoft.VisualStudio.Modeling.Transaction
命名空间: Microsoft.VisualStudio.Modeling
程序集: Microsoft.VisualStudio.Modeling.Sdk.12.0(在 Microsoft.VisualStudio.Modeling.Sdk.12.0.dll 中)
语法
声明
Public Class Transaction _
Inherits MarshalByRefObject _
Implements IDisposable
public class Transaction : MarshalByRefObject,
IDisposable
Transaction 类型公开以下成员。
属性
名称 | 说明 | |
---|---|---|
![]() |
Context | 获取事务并使客户将用户数据追加到该事务。 |
![]() |
ContextInstance | 获取此事务的 Context。 |
![]() |
ForceAllRulesToCommitTime | 获取或设置强制所有嵌套规则为当前事务发生在 LocalCommit 时的标志。 |
![]() |
HasPendingChanges | 获取事务并验证此事务期间是否对存储区进行更改。 |
![]() |
HaveCommitTimeRulesFired | 指示是否会激活分配时间规则 |
![]() |
Id | 获取此事务的 ID。 |
![]() |
InRollback | 获取事务并验证此事务是否回滚。 |
![]() |
IsActive | 获取事务并验证此事务是否正在进行处理。 |
![]() |
IsHidden | 获取事务并验证该事务是否隐藏。 |
![]() |
IsNested | 获取事务并验证是否可以在另一个事务中嵌套。 |
![]() |
IsSerializing | 获取事务并验证该事务是否当前正在进行序列化。 |
![]() |
Name | 获取或设置事务的名称。 |
![]() |
Parent | 获取分配给嵌套事务的顶级事务。 |
![]() |
PartitionStates | 获取存储器中所有分区的状态信息。 |
![]() |
SequenceNumber | 获取事务的序列号。 |
![]() |
Store | 获取事务所属的存储 。 |
![]() |
TopLevelTransaction | 获取事务层次结构的顶级事务。 |
![]() |
TransactionDepth | 获取该事物嵌套的事务的数目。 |
页首
方法
名称 | 说明 | |
---|---|---|
![]() |
Commit | 提交事务。 |
![]() |
CreateObjRef | 安全关键。创建一个对象,该对象包含生成用于与远程对象进行通信的代理所需的全部相关信息。 (继承自 MarshalByRefObject。) |
![]() |
Dispose | 处置事务的状态。 |
![]() |
Equals | 确定指定的对象是否等于当前对象。 (继承自 Object。) |
![]() |
Finalize | 结束事务。 (重写 Object.Finalize()。) |
![]() |
GetHashCode | 作为默认哈希函数。 (继承自 Object。) |
![]() |
GetLifetimeService | 安全关键。检索控制此实例的生存期策略的当前生存期服务对象。 (继承自 MarshalByRefObject。) |
![]() |
GetType | 获取当前实例的 Type。 (继承自 Object。) |
![]() |
InitializeLifetimeService | 安全关键。获取控制此实例的生存期策略的生存期服务对象。 (继承自 MarshalByRefObject。) |
![]() |
MemberwiseClone() | 创建当前 Object 的浅表副本。 (继承自 Object。) |
![]() |
MemberwiseClone(Boolean) | 创建当前 MarshalByRefObject 对象的浅表副本。 (继承自 MarshalByRefObject。) |
![]() |
Rollback | 存储将重新设置到事务生成时的状态。 |
![]() |
ToString | 返回表示当前对象的字符串。 (继承自 Object。) |
页首
扩展方法
名称 | 说明 | |
---|---|---|
![]() |
GetSerializationContext | 获取活动在指定事务上下午中的 SerializationContext。SerializationContext 在序列化事务的 TranactionContext 中存储。如果事务是嵌套的,则在事务对战中搜索,以寻找最接近的具有 SerializationContext 的闭合序列化事务。 (由 SerializationContextTransactionExtensions 定义。) |
页首
备注
事务使您能够组更改。 它还记录在事务中执行的操作,以便以后可以取消。
对存储的更改必须完成事务中。 只有 + 当该事务提交,用于存储的更改。 事务可能包含存储接受更改,也可以在本地事务提交时,或者当顶级事务提交时。 本地事务在一个顶级事务嵌套。 在下一个顶级事务能提交或回滚之前,一个嵌套事务必须提交或回滚。 有关更多信息,请参见示例 TransactionDepth 属性。
事务还记录发生的事件。 这将使事件的一组后撤消或重做操作与 UndoManager 属性。
应配置事务。 这可以完成使用 Dispose 方法或通过创建事务在 Using 构造。 如果该事务尚未提交,以便在配置时,该事务将自动回滚,所有更改都将被取消。
示例
下面的示例演示修改存储的事务。 该事务提交。 如果该事务回滚,用于存储的所有更改都将被取消。 该事务将自动配置在 using 块的结尾处。
using (Transaction txCreateElem = model.Store.TransactionManager.BeginTransaction("Create named element")
{
A a = new A(store);
a.Name = "Fred";
// Commit the transaction and add the named element to the model
txCreateElem.Commit();
}
有关示例和更多信息,请参见 Using Transactions。
线程安全
此类型的任何公共 static(在 Visual Basic 中为 Shared) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。