Exemple #1
0
        /// <summary>
        ///
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="q"></param>
        /// <param name="orderString">Id asc,Age desc...</param>
        /// <returns></returns>
        public static IOrderedQuery <T> OrderBy <T>(this IQuery <T> q, string orderString)
        {
            if (q == null)
            {
                throw new ArgumentNullException("q");
            }
            if (string.IsNullOrEmpty(orderString))
            {
                throw new ArgumentNullException("orderString");
            }

            List <Ordering> orderingList = SplitOrderingString(orderString);

            IOrderedQuery <T> orderedQuery = null;

            for (int i = 0; i < orderingList.Count; i++)
            {
                Ordering ordering = orderingList[i];
                if (orderedQuery == null)
                {
                    orderedQuery = q.InnerOrderBy(ordering);
                }
                else
                {
                    orderedQuery = orderedQuery.InnerThenBy(ordering);
                }
            }

            return(orderedQuery);
        }