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), являются потокобезопасными. Потокобезопасность членов экземпляров не гарантируется.