Transaction 類別
確保將存放區中所做變更當做一個可以認可或復原之群組來處理的異動。
繼承階層架構
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 | 安全性關鍵。建立包含所有相關資訊的物件,這些資訊是產生用來與遠端物件通訊的所需 Proxy。 (繼承自 MarshalByRefObject)。 | |
Dispose | 處置交易的狀態。 | |
Equals | 判斷指定的物件是否等於目前物件。 (繼承自 Object)。 | |
Finalize | 完成異動。 (覆寫 Object.Finalize()。) | |
GetHashCode | 做為預設雜湊函式。 (繼承自 Object)。 | |
GetLifetimeService | 安全性關鍵。擷取控制這個執行個體存留期 (Lifetime) 原則的目前存留期服務物件。 (繼承自 MarshalByRefObject)。 | |
GetType | 取得目前執行個體的 Type。 (繼承自 Object)。 | |
InitializeLifetimeService | 安全性關鍵。取得存留期服務物件來控制這個執行個體的存留期原則。 (繼承自 MarshalByRefObject)。 | |
MemberwiseClone() | 建立目前 Object 的淺層複本 (Shallow Copy)。 (繼承自 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。
執行緒安全
這個類型的任何 Public static (在 Visual Basic 中為 Shared) 成員都是安全執行緒。不保證任何執行個體成員是安全執行緒。