internal UnitOfWorkChild(ISessionProvider sessionProvider, TRootEntity childRoot, IUnitOfWork parentUoW, UnitOfWorkTitle actionTitle) : base(sessionProvider) { IsNew = childRoot.Id == 0; ActionTitle = actionTitle; this.parentUoW = parentUoW; Root = childRoot; }
/// <summary> /// Создаем Unit of Work загружая сущность по id. /// </summary> /// <returns>UnitOfWork.</returns> /// <typeparam name="TEntity">Тип объекта доменной модели, должен реализовывать интерфейс IDomainObject.</typeparam> public IUnitOfWorkGeneric <TEntity> CreateForRoot <TEntity>(int id, string userActionTitle = null, [CallerMemberName] string callerMemberName = null, [CallerFilePath] string callerFilePath = null, [CallerLineNumber] int callerLineNumber = 0) where TEntity : class, IDomainObject, new() { var title = new UnitOfWorkTitle(userActionTitle, callerMemberName, callerFilePath, callerLineNumber); var uow = new UnitOfWork <TEntity>(SessionProvider, id, title); return(uow); }
/// <summary> /// Создаем Unit of Work с новым экземляром сущности переданным в виде аргумента /// </summary> /// <returns>UnitOfWork.</returns> /// <typeparam name="TEntity">Тип объекта доменной модели, должен реализовывать интерфейс IDomainObject.</typeparam> public static IUnitOfWorkGeneric <TEntity> CreateWithNewRoot <TEntity>(TEntity entity, string userActionTitle = null, [CallerMemberName] string callerMemberName = null, [CallerFilePath] string callerFilePath = null, [CallerLineNumber] int callerLineNumber = 0) where TEntity : class, IDomainObject, new() { var title = new UnitOfWorkTitle(userActionTitle, callerMemberName, callerFilePath, callerLineNumber); var uow = new UnitOfWork <TEntity>(entity, title); return(uow); }
/// <summary> /// Создаем дочерний Unit of Work с новым экземляром сущности, не использующий коммит при сохранении Root /// </summary> /// <returns>UnitOfWork.</returns> /// <typeparam name="TChildRootEntity">Тип объекта доменной модели, должен реализовывать интерфейс IDomainObject.</typeparam> public IUnitOfWorkGeneric <TChildRootEntity> CreateWithNewChildRoot <TChildRootEntity>(IUnitOfWork parentUoW, string userActionTitle = null, [CallerMemberName] string callerMemberName = null, [CallerFilePath] string callerFilePath = null, [CallerLineNumber] int callerLineNumber = 0) where TChildRootEntity : class, IDomainObject, new() { var title = new UnitOfWorkTitle(userActionTitle, callerMemberName, callerFilePath, callerLineNumber); var uow = new UnitOfWorkChild <TChildRootEntity>(null, new TChildRootEntity(), parentUoW, title); uow.SessionScopeEntitySaved += (sender, e) => { parentUoW.RaiseSessionScopeEntitySaved(e.UpdatedSubjects); }; return(uow); }
internal UnitOfWork(TRootEntity root, UnitOfWorkTitle title) { IsNew = true; Root = root; ActionTitle = title; if (Root is IBusinessObject) { ((IBusinessObject)Root).UoW = this; } }
internal UnitOfWork(ISessionProvider sessionProvider, TRootEntity root, UnitOfWorkTitle title) : base(sessionProvider) { IsNew = true; Root = root; ActionTitle = title; if (Root is IBusinessObject) { ((IBusinessObject)Root).UoW = this; } }
internal UnitOfWorkWithoutRoot(ISessionProvider sessionProvider, UnitOfWorkTitle title) : base(sessionProvider) { IsNew = false; ActionTitle = title; }
internal UnitOfWork(int id, UnitOfWorkTitle title) { IsNew = false; ActionTitle = title; Root = GetById <TRootEntity>(id); }
/// <summary> /// Создаем Unit of Work без корренной сущьности. /// </summary> /// <returns>UnitOfWork.</returns> public static IUnitOfWork CreateWithoutRoot(string userActionTitle = null, [CallerMemberName] string callerMemberName = null, [CallerFilePath] string callerFilePath = null, [CallerLineNumber] int callerLineNumber = 0) { var title = new UnitOfWorkTitle(userActionTitle, callerMemberName, callerFilePath, callerLineNumber); return(new UnitOfWorkWithoutRoot(title)); }
internal UnitOfWork(ISessionProvider sessionProvider, int id, UnitOfWorkTitle title) : base(sessionProvider) { IsNew = false; ActionTitle = title; Root = GetById <TRootEntity>(id); }
internal UnitOfWorkWithoutRoot(UnitOfWorkTitle title) { IsNew = false; ActionTitle = title; }