internal override bool TryGetTypeByName( string fullName, bool ignoreCase, out TypeUsage typeUsage) { typeUsage = (TypeUsage)null; MappingBase map = (MappingBase)null; if (this.MetadataWorkspace.TryGetMap(fullName, DataSpace.OSpace, ignoreCase, DataSpace.OCSpace, out map)) { if (map.EdmItem.BuiltInTypeKind == BuiltInTypeKind.PrimitiveType) { PrimitiveType mappedPrimitiveType = this.MetadataWorkspace.GetMappedPrimitiveType(((PrimitiveType)map.EdmItem).PrimitiveTypeKind, DataSpace.CSpace); if (mappedPrimitiveType != null) { typeUsage = EdmProviderManifest.Instance.GetCanonicalModelTypeUsage(mappedPrimitiveType.PrimitiveTypeKind); } } else { typeUsage = ClrPerspective.GetMappedTypeUsage(map); } } return(null != typeUsage); }
// <summary> // This internal method ensures that the specified type is a scalar // type supported by the underlying provider by ensuring that scalar // metadata for this type is retrievable. // </summary> internal bool ValidateParameterType(ClrPerspective perspective) { TypeUsage type; // The parameter type metadata is only valid if it's scalar or enumeration type metadata. if ((perspective.TryGetType(_mappableType, out type)) && (TypeSemantics.IsScalarType(type))) { return true; } return false; }