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); } }
private object ProcessConstant(ConstantQueryNode constNode) { return constNode == null ? null : constNode.Value; }
private object ProcessConstant(ConstantQueryNode constNode) { return(constNode == null ? null : constNode.Value); }