Updates referencesource to .NET 4.7
[mono-project.git] / mcs / class / referencesource / System.Data.Entity / System / Data / Metadata / ModelPerspective.cs
blob90cc7b12fbfaeaf1b52fc0a31da863eab970bfcd
1 //---------------------------------------------------------------------
2 // <copyright file="ModelPerspective.cs" company="Microsoft">
3 // Copyright (c) Microsoft Corporation. All rights reserved.
4 // </copyright>
5 //
6 // @owner Microsoft
7 // @backupOwner Microsoft
8 //---------------------------------------------------------------------
10 namespace System.Data.Metadata.Edm
12 using System.Collections.Generic;
13 using System.Globalization;
15 /// <summary>
16 /// Internal helper class for query
17 /// </summary>
18 internal class ModelPerspective : Perspective
20 #region Contructors
21 /// <summary>
22 /// Creates a new instance of perspective class so that query can work
23 /// ignorant of all spaces
24 /// </summary>
25 /// <param name="metadataWorkspace">runtime metadata container</param>
26 internal ModelPerspective(MetadataWorkspace metadataWorkspace)
27 : base(metadataWorkspace, DataSpace.CSpace)
30 #endregion
32 #region Methods
33 /// <summary>
34 /// Look up a type in the target data space based upon the fullName
35 /// </summary>
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");
43 typeUsage = null;
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);
51 else
53 typeUsage = TypeUsage.Create(edmType);
56 return typeUsage != null;
58 #endregion