示例#1
0
        private IReadOnlyList <DbExpressionSort> GetOrderBy(Identity parentIdentity)
        {
            Debug.Assert(parentIdentity != null);
            var orderByListCount = OrderByList == null ? 0 : OrderByList.Count;
            var result           = new DbExpressionSort[orderByListCount + 1];

            result[0] = GetDbExpressionSort(parentIdentity);
            for (int i = 0; i < orderByListCount; i++)
            {
                result[i + 1] = OrderByList[i];
            }

            return(result);
        }
示例#2
0
        private IList <DbExpressionSort> EliminateSubQuery(IList <ColumnSort> orderByList)
        {
            if (orderByList == null)
            {
                return(null);
            }

            var result = new DbExpressionSort[orderByList.Count];

            for (int i = 0; i < orderByList.Count; i++)
            {
                var orderBy = orderByList[i];
                result[i] = new DbExpressionSort(EliminateSubQuery(orderBy.Column.DbExpression), orderBy.Direction);
            }

            return(result);
        }