TransactionStrategyExecuteInTransactionCoreAsync - метод
Выполняет запрос на изменение карточки внутри транзакции. При этом не используется блокировка reader/writer.
Обычно транзакция открывается только в том случае, если на этом соединении с БД отсутствует другая незакрытая транзакция.
Пространство имён: Tessa.Platform.DataСборка: Tessa (в Tessa.dll) Версия: 4.0.4
protected virtual 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
)
Protected Overridable Function ExecuteInTransactionCoreAsync (
db As DbManager,
parameter As ITransactionParameter,
asyncAction As Func(Of ITransactionParameter, Task),
Optional beforeActionAsync As Func(Of CancellationToken, ValueTask(Of Boolean)) = Nothing,
Optional afterActionAsync As Func(Of Boolean, CancellationToken, ValueTask) = Nothing,
Optional cancellationToken As CancellationToken = Nothing
) As Task(Of Boolean)
protected:
virtual Task<bool>^ ExecuteInTransactionCoreAsync(
DbManager^ db,
ITransactionParameter^ parameter,
Func<ITransactionParameter^, Task^>^ asyncAction,
Func<CancellationToken, ValueTask<bool>>^ beforeActionAsync = nullptr,
Func<bool, CancellationToken, ValueTask>^ afterActionAsync = nullptr,
CancellationToken cancellationToken = CancellationToken()
)
abstract ExecuteInTransactionCoreAsync :
db : DbManager *
parameter : ITransactionParameter *
asyncAction : Func<ITransactionParameter, Task> *
?beforeActionAsync : Func<CancellationToken, ValueTask<bool>> *
?afterActionAsync : Func<bool, CancellationToken, ValueTask> *
?cancellationToken : CancellationToken
(* Defaults:
let _beforeActionAsync = defaultArg beforeActionAsync null
let _afterActionAsync = defaultArg afterActionAsync null
let _cancellationToken = defaultArg cancellationToken new CancellationToken()
*)
-> Task<bool>
override ExecuteInTransactionCoreAsync :
db : DbManager *
parameter : ITransactionParameter *
asyncAction : Func<ITransactionParameter, Task> *
?beforeActionAsync : Func<CancellationToken, ValueTask<bool>> *
?afterActionAsync : Func<bool, CancellationToken, ValueTask> *
?cancellationToken : CancellationToken
(* Defaults:
let _beforeActionAsync = defaultArg beforeActionAsync null
let _afterActionAsync = defaultArg afterActionAsync null
let _cancellationToken = defaultArg cancellationToken new CancellationToken()
*)
-> Task<bool>
- db DbManager
- Объект, выполняющий запросы на базе данных.
- parameter ITransactionParameter
- Параметр транзакции.
- asyncAction FuncITransactionParameter, Task
-
Асинхронный метод, принимающий параметр с информацией о транзакции. Исполняется внутри в транзакции.
- beforeActionAsync FuncCancellationToken, ValueTaskBoolean (Optional)
-
Асинхронный метод, выполняющийся до открытия транзакции. Возвращает признак успешности выполнения и в сулчае неудачи пердотвращает открытие транзакции.
- afterActionAsync FuncBoolean, CancellationToken, ValueTask (Optional)
-
Асинхронный метод, выполняющийся после закрытия транзакции. Принимает логический аргумент с результатом выполнения внутренней операции.
- cancellationToken CancellationToken (Optional)
- Объект, посредством которого можно отменить асинхронную задачу.
TaskBooleantrue, если транзакция успешно завершилась;
false, если в процессе создания или выполнения транзакции произошло исключение,
причём произошёл откат начатой транзакции.