public CsdlSemanticsUntypedTypeReference(CsdlSemanticsSchema schema, CsdlUntypedTypeReference reference) : base(reference) { this.schema = schema; this.Reference = reference; this.definition = EdmCoreModel.Instance.GetUntypedType(); }
internal static IEdmTypeReference WrapTypeReference(CsdlSemanticsSchema schema, CsdlTypeReference type) { var typeReference = type as CsdlNamedTypeReference; if (typeReference != null) { var primitiveReference = typeReference as CsdlPrimitiveTypeReference; if (primitiveReference != null) { switch (primitiveReference.Kind) { case EdmPrimitiveTypeKind.Boolean: case EdmPrimitiveTypeKind.Byte: case EdmPrimitiveTypeKind.Date: case EdmPrimitiveTypeKind.Double: case EdmPrimitiveTypeKind.Guid: case EdmPrimitiveTypeKind.Int16: case EdmPrimitiveTypeKind.Int32: case EdmPrimitiveTypeKind.Int64: case EdmPrimitiveTypeKind.SByte: case EdmPrimitiveTypeKind.Single: case EdmPrimitiveTypeKind.Stream: return(new CsdlSemanticsPrimitiveTypeReference(schema, primitiveReference)); case EdmPrimitiveTypeKind.Binary: return(new CsdlSemanticsBinaryTypeReference(schema, (CsdlBinaryTypeReference)primitiveReference)); case EdmPrimitiveTypeKind.DateTimeOffset: case EdmPrimitiveTypeKind.Duration: case EdmPrimitiveTypeKind.TimeOfDay: return(new CsdlSemanticsTemporalTypeReference(schema, (CsdlTemporalTypeReference)primitiveReference)); case EdmPrimitiveTypeKind.Decimal: return(new CsdlSemanticsDecimalTypeReference(schema, (CsdlDecimalTypeReference)primitiveReference)); case EdmPrimitiveTypeKind.String: return(new CsdlSemanticsStringTypeReference(schema, (CsdlStringTypeReference)primitiveReference)); case EdmPrimitiveTypeKind.Geography: case EdmPrimitiveTypeKind.GeographyPoint: case EdmPrimitiveTypeKind.GeographyLineString: case EdmPrimitiveTypeKind.GeographyPolygon: case EdmPrimitiveTypeKind.GeographyCollection: case EdmPrimitiveTypeKind.GeographyMultiPolygon: case EdmPrimitiveTypeKind.GeographyMultiLineString: case EdmPrimitiveTypeKind.GeographyMultiPoint: case EdmPrimitiveTypeKind.Geometry: case EdmPrimitiveTypeKind.GeometryPoint: case EdmPrimitiveTypeKind.GeometryLineString: case EdmPrimitiveTypeKind.GeometryPolygon: case EdmPrimitiveTypeKind.GeometryCollection: case EdmPrimitiveTypeKind.GeometryMultiPolygon: case EdmPrimitiveTypeKind.GeometryMultiLineString: case EdmPrimitiveTypeKind.GeometryMultiPoint: return(new CsdlSemanticsSpatialTypeReference(schema, (CsdlSpatialTypeReference)primitiveReference)); } } else { CsdlUntypedTypeReference csdlUntypedTypeReference = typeReference as CsdlUntypedTypeReference; if (csdlUntypedTypeReference != null) { return(new CsdlSemanticsUntypedTypeReference(schema, csdlUntypedTypeReference)); } if (schema.FindType(typeReference.FullName) is IEdmTypeDefinition) { return(new CsdlSemanticsTypeDefinitionReference(schema, typeReference)); } } return(new CsdlSemanticsNamedTypeReference(schema, typeReference)); } var typeExpression = type as CsdlExpressionTypeReference; if (typeExpression != null) { var collectionType = typeExpression.TypeExpression as CsdlCollectionType; if (collectionType != null) { return(new CsdlSemanticsCollectionTypeExpression(typeExpression, new CsdlSemanticsCollectionTypeDefinition(schema, collectionType))); } var entityReferenceType = typeExpression.TypeExpression as CsdlEntityReferenceType; if (entityReferenceType != null) { return(new CsdlSemanticsEntityReferenceTypeExpression(typeExpression, new CsdlSemanticsEntityReferenceTypeDefinition(schema, entityReferenceType))); } } return(null); }