private Expression BindConstantQueryNode(ConstantQueryNode constantNode)
        {
            Contract.Assert(constantNode != null);

            if (constantNode.Value == null)
            {
                return(_nullConstant);
            }

            return(Expression.Constant(constantNode.Value, EdmLibHelpers.GetClrType(constantNode.TypeReference, _model, _assembliesResolver)));
        }
        /// <summary>
        /// Translates a constant node.
        /// </summary>
        /// <param name="constantNode">The constant node to translate.</param>
        /// <returns>The translated expression which evaluates to the constant value.</returns>
        protected virtual Expression TranslateConstant(ConstantQueryNode constantNode)
        {
            ExceptionUtils.CheckArgumentNotNull(constantNode, "constantNode");

            if (constantNode.TypeReference == null)
            {
                Debug.Assert(constantNode.Value == null, "constantNode.Value == null");
                return nullLiteralExpression;
            }
            else
            {
                if (!constantNode.TypeReference.IsODataPrimitiveTypeKind())
                {
                    throw new ODataException(Strings.QueryExpressionTranslator_ConstantNonPrimitive(constantNode.TypeReference.ODataFullName()));
                }

                return Expression.Constant(constantNode.Value, constantNode.TypeReference.GetInstanceType(this.model));
            }
        }
        /// <summary>
        /// Translates a constant node.
        /// </summary>
        /// <param name="constantNode">The constant node to translate.</param>
        /// <returns>The translated expression which evaluates to the constant value.</returns>
        protected virtual Expression TranslateConstant(ConstantQueryNode constantNode)
        {
            ExceptionUtils.CheckArgumentNotNull(constantNode, "constantNode");

            if (constantNode.ResourceType == null)
            {
                Debug.Assert(constantNode.Value == null, "constantNode.Value == null");
                return nullLiteralExpression;
            }
            else
            {
                if (constantNode.ResourceType.ResourceTypeKind != ResourceTypeKind.Primitive)
                {
                    throw new ODataException(Strings.QueryExpressionTranslator_ConstantNonPrimitive(constantNode.ResourceType.FullName));
                }

                return Expression.Constant(constantNode.Value, constantNode.ResourceType.InstanceType);
            }
        }
Example #4
0
 private object ProcessConstant(ConstantQueryNode constNode)
 {
     return constNode == null ? null : constNode.Value;
 }
Example #5
0
 private object ProcessConstant(ConstantQueryNode constNode)
 {
     return(constNode == null ? null : constNode.Value);
 }