예제 #1
0
        public IUnitOfWork Begin(UnitOfWorkOption option)
        {
            if (option?.Scope == TransactionScopeOption.Required && Current != null)
            {
                return(unitOfWorkProvider.Current);
            }

            var uow = serviceProvider.GetService(typeof(IUnitOfWork)).TryAs <UnitOfWork.UnitOfWorkBase>();

            uow.Completed += Uow_Completed;
            uow.Failed    += Uow_Failed;
            uow.Disposed  += Uow_Disposed;

            uow.BeforeBegin(option);

            return(unitOfWorkProvider.Current = uow);
        }
예제 #2
0
 public abstract void Begin(UnitOfWorkOption options);
예제 #3
0
 public void BeforeBegin(UnitOfWorkOption option)
 {
     Begin(option);
 }