/// <summary> /// 从指定<see cref="IQueryable{T}"/>集合 中查询指定分页条件的子数据集 /// </summary> /// <typeparam name="TEntity">实体类型</typeparam> /// <typeparam name="TKey">实体主键类型</typeparam> /// <param name="source">要查询的数据集</param> /// <param name="predicate">查询条件谓语表达式</param> /// <param name="pageCondition">分页查询条件</param> /// <param name="total">输出符合条件的总记录数</param> /// <returns></returns> public static IQueryable <TEntity> Where <TEntity, TKey>(this IQueryable <TEntity> source, Expression <Func <TEntity, bool> > predicate, PageCondition pageCondition, out int total) where TEntity : EntityBase <TKey> { source.CheckNotNull("source"); predicate.CheckNotNull("predicate"); pageCondition.CheckNotNull("pageCondition"); return(source.Where <TEntity, TKey>(predicate, pageCondition.PageIndex, pageCondition.PageSize, out total, pageCondition.SortConditions)); }
/// <summary> /// 从指定<see cref="IQueryable{T}"/>集合中查询指定数据筛选的分页信息 /// </summary> /// <typeparam name="TEntity">实体类型</typeparam> /// <typeparam name="TResult">分页数据类型</typeparam> /// <param name="source">要查询的数据集</param> /// <param name="predicate">查询条件谓语表达式</param> /// <param name="pageCondition">分页查询条件</param> /// <param name="selector">数据筛选表达式</param> /// <returns>分页结果信息</returns> public static PageResult <TResult> ToPage <TEntity, TResult>(this IQueryable <TEntity> source, Expression <Func <TEntity, bool> > predicate, PageCondition pageCondition, Expression <Func <TEntity, TResult> > selector) { source.CheckNotNull("source"); predicate.CheckNotNull("predicate"); pageCondition.CheckNotNull("pageCondition"); selector.CheckNotNull("selector"); return(source.ToPage(predicate, pageCondition.PageIndex, pageCondition.PageSize, pageCondition.SortConditions, selector)); }
/// <summary> /// 从指定<see cref="IQueryable{T}"/>集合中查询指定输出DTO的分页信息 /// </summary> /// <typeparam name="TEntity">实体类型</typeparam> /// <typeparam name="TOutputDto">输出DTO数据类型</typeparam> /// <param name="source">要查询的数据集</param> /// <param name="predicate">查询条件谓语表达式</param> /// <param name="pageCondition">分页查询条件</param> /// <returns>分页结果信息</returns> public static PageResult <TOutputDto> ToPage <TEntity, TOutputDto>(this IQueryable <TEntity> source, Expression <Func <TEntity, bool> > predicate, PageCondition pageCondition) where TOutputDto : IOutputDto { source.CheckNotNull("source"); predicate.CheckNotNull("predicate"); pageCondition.CheckNotNull("pageCondition"); return(source.ToPage <TEntity, TOutputDto>(predicate, pageCondition.PageIndex, pageCondition.PageSize, pageCondition.SortConditions)); }