/// <summary> /// 添加(批量) /// </summary> /// <param name="entities">实体</param> /// <param name="tran">事务</param> public virtual void AddList(IEnumerable <T> entities, IUnitTransaction tran) { tran.Register(() => { DbSet.AddRange(entities); return(SaveChanges()); }, Context); }
/// <summary> /// 修改 /// </summary> /// <param name="entity">实体</param> /// <param name="tran">事务</param> public virtual void Update(T entity, IUnitTransaction tran) { tran.Register(() => { DbSet.Update(entity); return(SaveChanges()); }, Context); }
/// <summary> /// 批量删除 /// </summary> /// <param name="predicate">条件</param> /// <param name="tran">事务</param> public virtual void BulkDelete(Expression <Func <T, bool> > predicate, IUnitTransaction tran) { tran.Register(() => { var entities = DbSet .Where(predicate) .ToList(); Context.BulkDelete(entities); return(SaveChanges()); }, Context); }
private void Dispose(bool disposing) { if (!disposed && disposing) { transaction?.Dispose(); transaction = null; context.Dispose(); } disposed = true; }
public void DeleteGraph() { using (IUnitOfWork work = ServiceLocator.Current.GetInstance <IUnitOfWork>()) using (IUnitTransaction transaction = work.Transaction) { IGenericDataContext <Edge> edgeRepository = work.GetGenericRepository <Edge>(); IGenericDataContext <Node> nodeRepository = work.GetGenericRepository <Node>(); edgeRepository.Entities.RemoveRange(edgeRepository.Entities); nodeRepository.Entities.RemoveRange(nodeRepository.Entities); transaction.Commit(); work.Save(); } }
public void SaveGraph(IList <Node> nodes) { using (IUnitOfWork work = ServiceLocator.Current.GetInstance <IUnitOfWork>()) using (IUnitTransaction transaction = work.Transaction) { IGenericDataContext <Node> nodeRepository = work.GetGenericRepository <Node>(); IGenericDataContext <Edge> edgeRepository = work.GetGenericRepository <Edge>(); foreach (Node node in nodes) { nodeRepository.Insert(node); foreach (Edge edge in node.OutEdges) { edgeRepository.Insert(edge); } } transaction.Commit(); work.Save(); } }
/// <summary> /// 添加 /// </summary> /// <param name="entity">实体</param> /// <param name="predicate">条件</param> /// <param name="tran">事务</param> public virtual void AddIfNotExists(T entity, Expression <Func <T, bool> > predicate, IUnitTransaction tran) { tran.Register(() => { var data = DbSet.Where(predicate).FirstOrDefault(); if (data == null) { DbSet.Add(entity); } return(SaveChanges()); }, Context); }