/// <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);
 }
示例#2
0
 /// <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);
 }
示例#3
0
        /// <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);
        }
示例#4
0
        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);
 }