1 //---------------------------------------------------------------------
2 // <copyright file="ModelPerspective.cs" company="Microsoft">
3 // Copyright (c) Microsoft Corporation. All rights reserved.
7 // @backupOwner Microsoft
8 //---------------------------------------------------------------------
10 namespace System.Data.Metadata.Edm
12 using System.Collections.Generic;
13 using System.Globalization;
16 /// Internal helper class for query
18 internal class ModelPerspective : Perspective
22 /// Creates a new instance of perspective class so that query can work
23 /// ignorant of all spaces
25 /// <param name="metadataWorkspace">runtime metadata container</param>
26 internal ModelPerspective(MetadataWorkspace metadataWorkspace)
27 : base(metadataWorkspace, DataSpace.CSpace)
34 /// Look up a type in the target data space based upon the fullName
36 /// <param name="fullName">fullName</param>
37 /// <param name="ignoreCase">true for case-insensitive lookup</param>
38 /// <param name="typeUsage">The type usage object to return</param>
39 /// <returns>True if the retrieval succeeded</returns>
40 internal override bool TryGetTypeByName(string fullName, bool ignoreCase, out TypeUsage typeUsage )
42 EntityUtil.CheckStringArgument(fullName, "fullName");
44 EdmType edmType = null;
45 if (this.MetadataWorkspace.TryGetItem<EdmType>(fullName, ignoreCase, this.TargetDataspace, out edmType))
47 if (Helper.IsPrimitiveType(edmType))
49 typeUsage = this.MetadataWorkspace.GetCanonicalModelTypeUsage(((PrimitiveType)edmType).PrimitiveTypeKind);
53 typeUsage = TypeUsage.Create(edmType);
56 return typeUsage != null;