数据读写 CommonCurd

 public partial class CommonCURD<T> where T : class
    {
        //DbContext context = new HMOAContainer();
        GdWorldDb context = new GdWorldDb();
        //增加
        public int Add(T userInfo)
        {
            context.Set<T>().Add(userInfo);
            return context.SaveChanges();
        }
        //修改 
        public int Edit(T userInfo)
        {
            context.Entry(userInfo).State = EntityState.Modified;
            return context.SaveChanges();
        }
        //删除
        public int Remove(int id)
        {
            T u1 = context.Set<T>().Find(id);
            context.Set<T>().Remove(u1);
            return context.SaveChanges();
        }
        public int Remove(int[] ids)
        {
            int counter = ids.Length;
            for (int i = 0; i < counter; i++)
            {
                T u1 = context.Set<T>().Find(ids[i]);
                context.Set<T>().Remove(u1);
            }
            return context.SaveChanges();
        }
        public int Remove(T userInfo)
        {
            context.Set<T>().Remove(userInfo);
            return context.SaveChanges();
        }
        //查询
        public T GetById(int id)
        {
            return context.Set<T>().Find(id);
        }
        public IQueryable<T> GetList(Expression<Func<T, bool>> whereLambda)
        {
            return context.Set<T>().Where(whereLambda);
        }
        public IQueryable<T> GetPageListDESC<Tkey>(Expression<Func<T, bool>> whereLambds, Expression<Func<T, Tkey>> orderLambda, int pageIndex, int pageSize)
        {
            return context.Set<T>().Where(whereLambds)
                .OrderByDescending(orderLambda)
                .Skip((pageIndex - 1) * pageSize)
                .Take(pageSize);
        }


        public IQueryable<T> GetPageListDESC<Tkey>(Expression<Func<T, bool>> whereLambds, Expression<Func<T, Tkey>> orderLambda, Expression<Func<T, Tkey>> thenorder, int pageIndex, int pageSize)
        {
            return context.Set<T>().Where(whereLambds)
                .OrderByDescending(orderLambda)
                .ThenByDescending(thenorder)
                .Skip((pageIndex - 1) * pageSize)
                .Take(pageSize);
        }

        //PagedList分页
        public IQueryable<T> GetPageList<TKey, TTKey>(Expression<Func<T, bool>> whereLambda, Expression<Func<T, TKey>> order, Expression<Func<T, TTKey>> thenorder, int pageIndex, int pageSize, ref int totalCount, bool IsDesc1 = true, bool IsDesc2 = true)
        {
            IQueryable<T> data = null;
            if (IsDesc1)
            {
                if (IsDesc2)
                {
                    data = context.Set<T>().Where(whereLambda).OrderByDescending(order).ThenByDescending(thenorder).Skip((pageIndex - 1) * pageSize).Take(pageSize).AsNoTracking();
                }
                else
                {
                    data = context.Set<T>().Where(whereLambda).OrderByDescending(order).OrderBy(thenorder).Skip((pageIndex - 1) * pageSize).Take(pageSize).AsNoTracking();
                }

            }
            else
            {
                if (IsDesc2)
                {
                    data = context.Set<T>().Where(whereLambda).OrderBy(order).ThenByDescending(thenorder).Skip((pageIndex - 1) * pageSize).Take(pageSize).AsNoTracking();
                }
                else
                {
                    data = context.Set<T>().Where(whereLambda).OrderBy(order).ThenBy(thenorder).Skip((pageIndex - 1) * pageSize).Take(pageSize).AsNoTracking();
                }
            }
            totalCount = context.Set<T>().Where(whereLambda).Count();
            return data;
        }

       
    }

  

原文地址:https://www.cnblogs.com/Kuleft/p/11088190.html