WithoutTransactionStrategyExecuteInTransactionCoreAsync - метод

Выполняет запрос на изменение карточки внутри транзакции. При этом не используется блокировка reader/writer. Обычно транзакция открывается только в том случае, если на этом соединении с БД отсутствует другая незакрытая транзакция.

Definition

Пространство имён: Tessa.Platform.Data
Сборка: Tessa (в Tessa.dll) Версия: 4.0.4
C#
protected override Task<bool> ExecuteInTransactionCoreAsync(
	DbManager db,
	ITransactionParameter parameter,
	Func<ITransactionParameter, Task> asyncAction,
	Func<CancellationToken, ValueTask<bool>>? beforeActionAsync = null,
	Func<bool, CancellationToken, ValueTask>? afterActionAsync = null,
	CancellationToken cancellationToken = default
)

Параметры

db  DbManager
Объект, выполняющий запросы на базе данных.
parameter  ITransactionParameter
Параметр транзакции.
asyncAction  FuncITransactionParameter, Task
Асинхронный метод, принимающий параметр с информацией о транзакции. Исполняется внутри в транзакции.
beforeActionAsync  FuncCancellationToken, ValueTaskBoolean  (Optional)
Асинхронный метод, выполняющийся до открытия транзакции. Возвращает признак успешности выполнения и в сулчае неудачи пердотвращает открытие транзакции.
afterActionAsync  FuncBoolean, CancellationToken, ValueTask  (Optional)
Асинхронный метод, выполняющийся после закрытия транзакции. Принимает логический аргумент с результатом выполнения внутренней операции.
cancellationToken  CancellationToken  (Optional)
Объект, посредством которого можно отменить асинхронную задачу.

Возвращаемое значение

TaskBoolean
true, если транзакция успешно завершилась; false, если в процессе создания или выполнения транзакции произошло исключение, причём произошёл откат начатой транзакции.

См. также