Пример #1
0
        /// <summary>
        /// 4.0.2 查询方法
        /// </summary>
        /// <typeparam name="Tkey"></typeparam>
        /// <param name="strWhere">查询条件</param>
        /// <param name="SelectDelData">查询的结果集中 是否包括 已经软删除的数据</param>
        /// <param name="strOrederBy">排序条件</param>
        /// <param name="order">是否升序</param>
        ///  <param name="tableName">连接查询 的表名</param>
        /// <returns></returns>
        public IQueryable <T> GetList <TTb>(Expression <Func <T, bool> > strWhere, bool SelectDelData = false, bool isAsNoTracking = true, Expression <Func <T, TTb> > tableName = null)
        {
            Expression <Func <T, bool> > exp = strWhere;

            if (!SelectDelData)
            {
                exp = AddLinq.And(exp, GetWhereIsDel());//合并 排除一删除查询条件
            }
            IQueryable <T> t = null;

            if (isAsNoTracking)
            {
                if (null == tableName)
                {
                    t = db.Set <T>().AsNoTracking().Where(exp);
                }
                else
                {
                    t = db.Set <T>().Include(tableName).AsNoTracking().Where(exp);
                }
            }
            else
            if (null == tableName)
            {
                t = db.Set <T>().Where(exp);
            }
            else
            {
                t = db.Set <T>().Include(tableName).Where(exp);
            }

            return(t);
        }
Пример #2
0
        /// <summary>
        /// 4.1.2 查询方法2 分页查询
        /// </summary>
        /// <typeparam name="Tkey"></typeparam>
        /// <param name="indexPage">页码(从1开始)</param>
        /// <param name="sizePage">页容量</param>
        /// <param name="strWhere">查询条件</param>
        /// <param name="SelectDelData">查询的结果集中 是否包括 已经软删除的数据</param>
        /// <param name="strOrederBy">排序字段</param>
        /// <param name="order">是否升序</param>
        ///  <param name="tableName">连接查询 的表名拉姆达表达式</param>
        /// <returns></returns>
        public IQueryable <T> GetList <Tkey, TTb>(int indexPage, int sizePage, out int total, Expression <Func <T, bool> > strWhere, bool SelectDelData = false, Expression <Func <T, Tkey> > strOrederBy = null, bool order = true, bool isAsNoTracking = true, Expression <Func <T, TTb> > tableName = null)
        {
            Expression <Func <T, bool> > exp = strWhere;

            if (!SelectDelData)
            {
                exp = AddLinq.And(exp, GetWhereIsDel());//合并 排除一删除查询条件
            }
            IQueryable <T> t = null;

            if (isAsNoTracking)
            {
                if (null == tableName)
                {
                    t = db.Set <T>().AsNoTracking().Where(exp);
                }
                else
                {
                    t = db.Set <T>().Include(tableName).AsNoTracking().Where(exp);
                }
            }
            else
            if (null == tableName)
            {
                t = db.Set <T>().Where(exp);
            }
            else
            {
                t = db.Set <T>().Include(tableName).Where(exp);
            }

            if (strOrederBy != null)
            {
                if (order)
                {
                    t = t.OrderBy(strOrederBy);
                }
                else
                {
                    t = t.OrderByDescending(strOrederBy);
                }
            }
            int count = t.Count();

            total = count / sizePage + (count % sizePage > 0 ? 1 : 0);
            return(t.Skip((indexPage - 1) * sizePage).Take(sizePage));
        }
Пример #3
0
        /// <summary>
        /// 4.0 查询方法
        /// </summary>
        /// <typeparam name="Tkey"></typeparam>
        /// <param name="strWhere">查询条件</param>
        /// <param name="SelectDelData">查询的结果集中 是否包括 已经软删除的数据</param>
        /// <param name="strOrederBy">排序条件</param>
        /// <param name="order">是否升序</param>
        ///  <param name="tableName">连接查询 的表名</param>
        /// <returns></returns>
        public IQueryable <T> GetList(Expression <Func <T, bool> > strWhere, bool SelectDelData = false, bool isAsNoTracking = true, string tableName = null)
        {
            Expression <Func <T, bool> > exp = strWhere;

            if (!SelectDelData)
            {
                exp = AddLinq.And(exp, GetWhereIsDel());//合并 排除一删除查询条件
            }
            IQueryable <T> t = null;

            //if (isAsNoTracking)
            //    t = db.Set<T>().AsNoTracking().Where(exp);
            //else
            //    t = db.Set<T>().Where(exp);

            if (isAsNoTracking)
            {
                if (string.IsNullOrEmpty(tableName))
                {
                    t = db.Set <T>().AsNoTracking().Where(exp);
                }
                else
                {
                    t = db.Set <T>().Include(tableName).AsNoTracking().Where(exp);
                }
            }
            else
            if (string.IsNullOrEmpty(tableName))
            {
                t = db.Set <T>().Where(exp);
            }
            else
            {
                t = db.Set <T>().Include(tableName).Where(exp);
            }

            return(t);
        }