/// <summary> /// Выполняет код вне транзакции /// </summary> /// <typeparam name="T">Тип возвращаемого результата</typeparam> /// <param name="func">Код, который необходимо выполнить вне транзакции</param> /// <returns>Результат</returns> public static T Suppress <T>(Func <T> func) { Tx tx = new Tx(TransactionScopeOption.Suppress); return(tx.ExecuteFunc(func)); }
/// <summary> /// Создаёт новую транзакцию /// </summary> /// <typeparam name="T">Тип возвращаемого результата</typeparam> /// <param name="timeout">Таймаут транзакции</param> /// <param name="level">Уровень изоляции транзакции</param> /// <param name="func">Код, который необходимо выполнить внутри транзакции</param> /// <returns>Результат</returns> public static T RequiresNew <T>(TimeSpan timeout, IsolationLevel level, Func <T> func) { Tx tx = new Tx(TransactionScopeOption.RequiresNew, level, timeout); return(tx.ExecuteFunc(func)); }
/// <summary> /// Выполняет код вне транзакции /// </summary> /// <param name="action">Код, который необходимо выполнить вне транзакции</param> public static void Suppress(Action action) { Tx tx = new Tx(TransactionScopeOption.Suppress); tx.ExecuteAction(action); }
/// <summary> /// Создаёт новую транзакцию /// </summary> /// <param name="timeout">Таймаут транзакции</param> /// <param name="level">Уровень изоляции транзакции</param> /// <param name="action">Код, который необходимо выполнить внутри транзакции</param> public static void RequiresNew(TimeSpan timeout, IsolationLevel level, Action action) { Tx tx = new Tx(TransactionScopeOption.RequiresNew, level, timeout); tx.ExecuteAction(action); }