public static UnitOfWork GetCurrentUnitOfWork() { UnitOfWork result = null; UnitOfWorkStack.TryPeek(out result); return(result); }
public void Dispose() { if (!this.isShadow) { this.list.Clear(); } UnitOfWork currentUnitOfWork = GetCurrentUnitOfWork(); if (currentUnitOfWork == this) { UnitOfWorkStack.TryPop(out currentUnitOfWork); } }
/// <summary> /// 提交事务 /// </summary> public void Complete() { UnitOfWork currentUnitOfWork = GetCurrentUnitOfWork(); if (currentUnitOfWork != this) { throw new Exception("当前提交的事务内还有未完成的其他事务,请先完成内部的事务"); } if ((this.Option == UnitOfWorkOption.RequiresNew) || ((this.Option == UnitOfWorkOption.Required) && !this.isShadow)) { this.Commit(); } UnitOfWorkStack.TryPop(out currentUnitOfWork); this.Dispose(); }
public UnitOfWork(UnitOfWorkOption option) { _list = new List <OperatorInfo>(); _maplist = new List <Map>(); _isShadow = false; Option = option; if (Option == UnitOfWorkOption.Required) { var currentUnitOfWork = GetCurrentUnitOfWork(); if (currentUnitOfWork == null) { _list = new List <OperatorInfo>(); } else { _list = currentUnitOfWork._list; _isShadow = true; } } UnitOfWorkStack.Push(this); }
public UnitOfWork(UnitOfWorkOption option) { list = new List <OperatorInfo>(); Maplist = new List <Map>(); this.isShadow = false; this.Option = option; if (this.Option == UnitOfWorkOption.Required) { UnitOfWork currentUnitOfWork = GetCurrentUnitOfWork(); if (currentUnitOfWork == null) { this.list = new List <OperatorInfo>(); } else { this.list = currentUnitOfWork.list; this.isShadow = true; } } UnitOfWorkStack.Push(this); }
public void SetCurrentUnitOfWork(UnitOfWork unitOfWork) { UnitOfWorkStack.Push(unitOfWork); }