Ejemplo n.º 1
0
 /// <summary>
 /// 获取一个实体 by some where
 /// </summary>
 /// <param name="where"></param>
 /// <returns></returns>
 public virtual T SingleOrDefault(Expression <Func <T, bool> > where)
 {
     using (var dbContext = new DcContext())
     {
         return(dbContext.Set <T>().SingleOrDefault(where));
     }
 }
Ejemplo n.º 2
0
 /// <summary>
 /// 获取总数
 /// </summary>
 /// <param name="where"></param>
 /// <returns></returns>
 public virtual int Count(Expression <Func <T, bool> > where)
 {
     using (var dbContext = new DcContext())
     {
         return(dbContext.Set <T>().Count(where));
     }
 }
Ejemplo n.º 3
0
        /// <summary>
        /// 分页
        /// </summary>
        /// <typeparam name="TKey"></typeparam>
        /// <param name="pageIndex"></param>
        /// <param name="pageSize"></param>
        /// <param name="where"></param>
        /// <param name="keySelector"></param>
        /// <param name="isAsc"></param>
        /// <returns></returns>
        public virtual PagingOutput <T> GetPageList <TKey>(int pageIndex, int pageSize, Expression <Func <T, bool> > where, Expression <Func <T, TKey> > keySelector = null, bool isAsc = true)
        {
            PagingOutput <T> output = new PagingOutput <T>()
            {
                PageIndex = pageIndex,
                PageSize  = pageSize
            };

            using (var dbContext = new DcContext())
            {
                var query = dbContext.Set <T>().Where(where);
                output.Total = query.Count();
                if (keySelector != null)
                {
                    if (isAsc)
                    {
                        query = query.OrderBy(keySelector);
                    }
                    else
                    {
                        query = query.OrderByDescending(keySelector);
                    }
                }
                output.Rows = query.Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList();
            }
            return(output);
        }
Ejemplo n.º 4
0
 /// <summary>
 /// 判断是否存在 by some where
 /// </summary>
 /// <param name="where"></param>
 /// <returns></returns>
 public virtual bool Exists(Expression <Func <T, bool> > where)
 {
     using (var dbContext = new DcContext())
     {
         return(dbContext.Set <T>().Any(where));
     }
 }
Ejemplo n.º 5
0
 /// <summary>
 /// 获取实体 by id
 /// </summary>
 /// <param name="id"></param>
 /// <returns></returns>
 public virtual T GetById(long id)
 {
     using (var dbContext = new DcContext())
     {
         return(dbContext.Set <T>().Find(id));
     }
 }
Ejemplo n.º 6
0
 /// <summary>
 /// 执行sql语句
 /// </summary>
 /// <param name="entity"></param>
 /// <returns></returns>
 public virtual int ExecuteUpdata(string sql, params object[] paramItem)
 {
     using (var dbContext = new DcContext())
     {
         return(dbContext.Database.ExecuteSqlCommand(sql, paramItem));
     }
 }
Ejemplo n.º 7
0
 public virtual T SingleOrDefault(Expression <Func <T, bool> > filter, params Expression <Func <T, object> >[] paths)
 {
     using (var dbContext = new DcContext())
     {
         var query = dbContext.Set <T>().AsQueryable();
         return(paths.Aggregate(query, (current, path) => current.Include(path)).SingleOrDefault(filter));
     }
 }
Ejemplo n.º 8
0
 public virtual T FirstOrDefault <S>(Expression <Func <T, bool> > filter, Expression <Func <T, S> > orderBy, params Expression <Func <T, object> >[] paths)
 {
     using (var dbContext = new DcContext())
     {
         var query = dbContext.Set <T>().AsQueryable();
         return(paths.Aggregate(query, (current, path) => current.Include(path)).OrderByDescending(orderBy).FirstOrDefault(filter));
     }
 }
Ejemplo n.º 9
0
 /// <summary>
 /// 新增实体
 /// </summary>
 /// <param name="entity"></param>
 /// <returns></returns>
 public virtual int Add(T entity)
 {
     using (var dbContext = new DcContext())
     {
         entity.CreateTime = DateTime.Now;
         dbContext.Set <T>().Add(entity);
         return(dbContext.SaveChanges());
     }
 }
Ejemplo n.º 10
0
 public virtual T FirstOrDefault(Expression <Func <T, bool> > filter, Func <IQueryable <T>, IOrderedQueryable <T> > order,
                                 params Expression <Func <T, object> >[] paths)
 {
     using (var dbContext = new DcContext())
     {
         var query = dbContext.Set <T>().AsQueryable();
         query = paths.Aggregate(query, (current, path) => current.Include(path));
         return(order(query).FirstOrDefault(filter));
     }
 }
Ejemplo n.º 11
0
 /// <summary>
 /// 获取所有实体
 /// </summary>
 /// <returns></returns>
 public virtual List <T> GetAll(params Expression <Func <T, object> >[] paths)
 {
     using (var dbContext = new DcContext())
     {
         var query = dbContext.Set <T>().AsQueryable();
         foreach (var path in paths)
         {
             query = query.Include(path);
         }
         return(query.ToList());
     }
 }
Ejemplo n.º 12
0
 public virtual int Remove(T entity)
 {
     using (var dbContext = new DcContext())
     {
         if (!dbContext.Set <T>().Local.Contains(entity))
         {
             dbContext.Set <T>().Attach(entity);
         }
         dbContext.Set <T>().Remove(entity);
         return(dbContext.SaveChanges());
     }
 }
Ejemplo n.º 13
0
 public List <T> Query(Expression <Func <T, bool> > filter, Func <IQueryable <T>, IOrderedQueryable <T> > order,
                       int top = int.MaxValue, params Expression <Func <T, object> >[] paths)
 {
     using (var dbCotext = new DcContext())
     {
         // this._dbContext.Database.Log = m => this.Log(m);
         var query = dbCotext.Set <T>().Where(filter);
         query = paths.Aggregate(query, (current, path) => current.Include(path));
         return(order(query)
                .Take(top)
                .ToList());
     }
 }
Ejemplo n.º 14
0
 /// <summary>
 /// 修改实体
 /// </summary>
 /// <param name="entity"></param>
 /// <returns></returns>
 public virtual int Update(T entity)
 {
     using (var dbContext = new DcContext())
     {
         if (!dbContext.Set <T>().Local.Contains(entity))
         {
             dbContext.Set <T>().Attach(entity);
         }
         entity.UpdateTime             = DateTime.Now;
         dbContext.Entry(entity).State = EntityState.Modified;
         return(dbContext.SaveChanges());
     }
 }
Ejemplo n.º 15
0
        /// <summary>
        /// 删除实体
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        public virtual int Delete(T entity)
        {
            using (var dbContext = new DcContext())
            {
                if (!dbContext.Set <T>().Local.Contains(entity))
                {
                    dbContext.Set <T>().Attach(entity);
                }
                (entity as ISoftDelete).IsDeleted = true;
                dbContext.Entry <T>(entity).State = EntityState.Modified;

                return(dbContext.SaveChanges());
            }
        }
Ejemplo n.º 16
0
        /// <summary>
        /// 获取所有实体

        /// </summary>
        /// <returns></returns>
        public virtual List <T> GetAll <S>(Expression <Func <T, S> > orderBy, bool IsAsc)
        {
            using (var dbContext = new DcContext())
            {
                if (IsAsc)
                {
                    return(dbContext.Set <T>().OrderBy(orderBy).ToList());
                }
                else
                {
                    return(dbContext.Set <T>().OrderByDescending(orderBy).ToList());
                }
            }
        }
Ejemplo n.º 17
0
 public List <T> Query(Expression <Func <T, bool> > filter, params Expression <Func <T, object> >[] paths)
 {
     using (var dbCotext = new DcContext())
     {
         var query = dbCotext.Set <T>().Where(filter);
         if (paths != null)
         {
             foreach (var path in paths)
             {
                 query = query.Include(path);
             }
         }
         return(query.ToList());
     }
 }
Ejemplo n.º 18
0
 public virtual int Add(IEnumerable <T> entities /*, bool isUseBulkInsert = false*/)
 {
     using (var dbContext = new DcContext())
     {
         //if (isUseBulkInsert)
         //{
         //    dbContext.BulkInsert(entities);
         //}
         //else
         //{
         foreach (var entity in entities)
         {
             dbContext.Set <T>().Add(entity);
         }
         //}
         return(dbContext.SaveChanges());
     }
 }
Ejemplo n.º 19
0
 /// <summary>
 /// 批量删除实体 by some where
 /// </summary>
 /// <param name="entity"></param>
 /// <returns></returns>
 public virtual int Deletes(Expression <Func <T, bool> > where)
 {
     using (var dbContext = new DcContext())
     {
         foreach (var entity in dbContext.Set <T>().Where(where))
         {
             if (entity is ISoftDelete)
             {
                 (entity as ISoftDelete).IsDeleted = true;
                 dbContext.Entry <T>(entity).State = EntityState.Modified;
             }
             else
             {
                 dbContext.Set <T>().Remove(entity);
             }
         }
         return(dbContext.SaveChanges());
     }
 }