示例#1
0
        public static IQueryable OrderByProperty(IQueryable query, IEdmModel model, IEdmProperty property, OrderByDirection direction, Type type, bool alreadyOrdered = false)
        {
            // property aliasing
            string           propertyName = EdmLibHelpers.GetClrPropertyName(property, model);
            Type             elementType  = query.ElementType;
            LambdaExpression orderByLambda;

            if (EdmLibHelpers.IsComputeWrapper(elementType, out Type underType))
            {
                orderByLambda = GetInstancePropertyAccessLambda(elementType, propertyName);
            }
            else
            {
                orderByLambda = GetPropertyAccessLambda(type, propertyName);
            }
            return(OrderBy(query, orderByLambda, direction, type, alreadyOrdered));
        }