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;