namespace NetAdmin.Host.Extensions; /// /// 工作单元管理器扩展类 /// public static class UnitOfWorkManagerExtensions { /// /// 事务操作 /// public static async Task AtomicOperateAsync(this UnitOfWorkManager me, Func handle) { var logger = LogHelper.Get(); using var unitOfWork = me.Begin(); var hashCode = unitOfWork.GetHashCode(); try { #if DEBUG logger?.Debug($"{Ln.开始事务}: {hashCode}"); #endif await handle().ConfigureAwait(false); unitOfWork.Commit(); logger?.Info($"{Ln.事务已提交}: {hashCode}"); } catch { unitOfWork.Rollback(); logger?.Warn($"{Ln.事务已回滚}: {hashCode}"); throw; } } }