public CsdlSemanticsLabeledExpression(string name, CsdlExpressionBase element, IEdmEntityType bindingContext, CsdlSemanticsSchema schema) : base(element) { this.name = name; this.sourceElement = element; this.bindingContext = bindingContext; this.schema = schema; }
protected CsdlSemanticsExpression(CsdlSemanticsSchema schema, CsdlExpressionBase element) : base(element) { this.schema = schema; }
internal static IEdmExpression WrapExpression(CsdlExpressionBase expression, IEdmEntityType bindingContext, CsdlSemanticsSchema schema) { if (expression != null) { switch (expression.ExpressionKind) { case EdmExpressionKind.Cast: return new CsdlSemanticsCastExpression((CsdlCastExpression)expression, bindingContext, schema); case EdmExpressionKind.BinaryConstant: return new CsdlSemanticsBinaryConstantExpression((CsdlConstantExpression)expression, schema); case EdmExpressionKind.BooleanConstant: return new CsdlSemanticsBooleanConstantExpression((CsdlConstantExpression)expression, schema); case EdmExpressionKind.Collection: return new CsdlSemanticsCollectionExpression((CsdlCollectionExpression)expression, bindingContext, schema); case EdmExpressionKind.DateTimeOffsetConstant: return new CsdlSemanticsDateTimeOffsetConstantExpression((CsdlConstantExpression)expression, schema); case EdmExpressionKind.DecimalConstant: return new CsdlSemanticsDecimalConstantExpression((CsdlConstantExpression)expression, schema); case EdmExpressionKind.EntitySetReference: return new CsdlSemanticsEntitySetReferenceExpression((CsdlEntitySetReferenceExpression)expression, bindingContext, schema); case EdmExpressionKind.EnumMember: case EdmExpressionKind.EnumMemberReference: return new CsdlSemanticsEnumMemberExpression((CsdlEnumMemberExpression)expression, bindingContext, schema); case EdmExpressionKind.FloatingConstant: return new CsdlSemanticsFloatingConstantExpression((CsdlConstantExpression)expression, schema); case EdmExpressionKind.Null: return new CsdlSemanticsNullExpression((CsdlConstantExpression)expression, schema); case EdmExpressionKind.OperationApplication: return new CsdlSemanticsApplyExpression((CsdlApplyExpression)expression, bindingContext, schema); case EdmExpressionKind.OperationReference: return new CsdlSemanticsOperationReferenceExpression((CsdlOperationReferenceExpression)expression, bindingContext, schema); case EdmExpressionKind.GuidConstant: return new CsdlSemanticsGuidConstantExpression((CsdlConstantExpression)expression, schema); case EdmExpressionKind.If: return new CsdlSemanticsIfExpression((CsdlIfExpression)expression, bindingContext, schema); case EdmExpressionKind.IntegerConstant: return new CsdlSemanticsIntConstantExpression((CsdlConstantExpression)expression, schema); case EdmExpressionKind.IsType: return new CsdlSemanticsIsTypeExpression((CsdlIsTypeExpression)expression, bindingContext, schema); case EdmExpressionKind.LabeledExpressionReference: return new CsdlSemanticsLabeledExpressionReferenceExpression((CsdlLabeledExpressionReferenceExpression)expression, bindingContext, schema); case EdmExpressionKind.Labeled: return schema.WrapLabeledElement((CsdlLabeledExpression)expression, bindingContext); case EdmExpressionKind.ParameterReference: return new CsdlSemanticsParameterReferenceExpression((CsdlParameterReferenceExpression)expression, bindingContext, schema); case EdmExpressionKind.Path: return new CsdlSemanticsPathExpression((CsdlPathExpression)expression, bindingContext, schema); case EdmExpressionKind.PropertyPath: return new CsdlSemanticsPropertyPathExpression((CsdlPropertyPathExpression)expression, bindingContext, schema); case EdmExpressionKind.NavigationPropertyPath: return new CsdlSemanticsNavigationPropertyPathExpression((CsdlNavigationPropertyPathExpression)expression, bindingContext, schema); case EdmExpressionKind.PropertyReference: return new CsdlSemanticsPropertyReferenceExpression((CsdlPropertyReferenceExpression)expression, bindingContext, schema); case EdmExpressionKind.Record: return new CsdlSemanticsRecordExpression((CsdlRecordExpression)expression, bindingContext, schema); case EdmExpressionKind.StringConstant: return new CsdlSemanticsStringConstantExpression((CsdlConstantExpression)expression, schema); case EdmExpressionKind.DurationConstant: return new CsdlSemanticsDurationConstantExpression((CsdlConstantExpression)expression, schema); case EdmExpressionKind.DateConstant: return new CsdlSemanticsDateConstantExpression((CsdlConstantExpression)expression, schema); case EdmExpressionKind.TimeOfDayConstant: return new CsdlSemanticsTimeOfDayConstantExpression((CsdlConstantExpression)expression, schema); } } return null; }