예제 #1
0
        public IOrderedSpecification <T> ThenBy <T, K>(IOrderedSpecification <T> spec, Expression <Func <T, K> > keySelector, QueryOrder order)
        {
            LinqSpecification <T> linqSpec = (LinqSpecification <T>)spec;

            ((IList <QueryOrderExpression>)linqSpec.ThenByExpressions).Add(QueryOrderExpression.CreateTheneBy(keySelector, order));
            return(linqSpec);
        }
        public static IOrderedSpecification <TEntity> ThenBy <TEntity>(this IOrderedSpecification <TEntity> specification, IOrderSpecification <TEntity> orderSpecification)
            where TEntity : class
        {
            if (specification == null)
            {
                throw new ArgumentNullException(nameof(specification));
            }

            return(AddOrderSpecification(specification, orderSpecification));
        }
예제 #3
0
 /// <summary>
 /// 指定规约根据某个键按降序对序列中的元素执行后续排序。
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <typeparam name="K"></typeparam>
 /// <param name="spec"></param>
 /// <param name="keySelector"></param>
 /// <returns></returns>
 public static IOrderedSpecification <T> ThenByDescending <T, K>(this IOrderedSpecification <T> spec, Expression <Func <T, K> > keySelector)
 {
     if (spec == null)
     {
         throw new ArgumentNullException("spec");
     }
     if (keySelector == null)
     {
         throw new ArgumentNullException("keySelector");
     }
     return(spec.Provider.ThenBy(spec, keySelector, QueryOrder.Descending));
 }
        public IOrderedSpecification <T> ThenBy <T, K>(IOrderedSpecification <T> spec, Expression <Func <T, K> > keySelector, QueryOrder order)
        {
            NHibernateSpecification <T> nhSpec = (NHibernateSpecification <T>)spec;

            if (order == QueryOrder.Ascending)
            {
                nhSpec.Query = ((IOrderedQueryable <T>)nhSpec.Query).ThenBy(keySelector);
            }
            else
            {
                nhSpec.Query = ((IOrderedQueryable <T>)nhSpec.Query).ThenByDescending(keySelector);
            }
            return(nhSpec);
        }
예제 #5
0
        public IOrderedSpecification <T> ThenBy <T, K>(IOrderedSpecification <T> spec,
                                                       Expression <Func <T, K> > keySelector, QueryOrder order)
        {
            IBatisNetSpecification <T> batisSpec = (IBatisNetSpecification <T>)spec;

            if (order == QueryOrder.Ascending)
            {
                batisSpec.Query = ((IOrderedQueryable <T>)batisSpec.Query).ThenBy(keySelector);
            }
            else
            {
                batisSpec.Query = ((IOrderedQueryable <T>)batisSpec.Query).ThenByDescending(keySelector);
            }
            return(batisSpec);
        }
 public static IOrderedSpecification <TEntity> ThenBy <TEntity>(this IOrderedSpecification <TEntity> specification, IOrderSpecification <TEntity> orderSpecification)
     where TEntity : class
 {
     return(AddOrderSpecification(specification, orderSpecification));
 }