예제 #1
0
        /// <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));
        }
예제 #3
0
 /// <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));
 }