/// <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); }
/// <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)); }
/// <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); }