Поделиться через


Transaction - класс

Транзакции гарантируют, что изменения, внесенные в хранилище рассматриваются как группа, можно зафиксировать или откатить.

Иерархия наследования

System.Object
  System.MarshalByRefObject
    Microsoft.VisualStudio.Modeling.Transaction

Пространство имен:  Microsoft.VisualStudio.Modeling
Сборка:  Microsoft.VisualStudio.Modeling.Sdk.11.0 (в Microsoft.VisualStudio.Modeling.Sdk.11.0.dll)

Синтаксис

'Декларация
Public Class Transaction _
    Inherits MarshalByRefObject _
    Implements IDisposable
public class Transaction : MarshalByRefObject, 
    IDisposable

Тип Transaction предоставляет следующие члены.

Свойства

  Имя Описание
Открытое свойство Context Получает транзакцию и позволяет клиентам добавление пользователей в транзакции.
Открытое свойство ContextInstance Возвращает Context для данной транзакции.
Открытое свойство ForceAllRulesToCommitTime Возвращает или задает пометить, в которой все вложенные правила произойти во время LocalCommit для текущей транзакции.
Открытое свойство HasPendingChanges Получает транзакцию и проверяет, были ли внесены изменения в хранилище во время этой транзакции.
Открытое свойство HaveCommitTimeRulesFired Указывает, были ли предоставлены правила времени фиксации или
Открытое свойство 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();
}

Примеры и дополнительные сведения см. в разделе Использование транзакций.

Потокобезопасность

Любые открытые члены этого типа, объявленные как static (Shared в Visual Basic), являются потокобезопасными. Потокобезопасность членов экземпляров не гарантируется.

См. также

Ссылки

Microsoft.VisualStudio.Modeling - пространство имен