Esempio n. 1
0
        internal override bool TryGetTypeByName(string fullName, bool ignoreCase, out TypeUsage usage)
        {
            Check.NotEmpty(fullName, nameof(fullName));
            EdmType edmType = (EdmType)null;

            if (!this.MetadataWorkspace.TryGetItem <EdmType>(fullName, ignoreCase, this.TargetDataspace, out edmType))
            {
                return(this._modelPerspective.TryGetTypeByName(fullName, ignoreCase, out usage));
            }
            usage = TypeUsage.Create(edmType);
            usage = Helper.GetModelTypeUsage(usage);
            return(true);
        }
        // <summary>
        // Look up a type in the target data space based upon the fullName
        // </summary>
        // <param name="fullName"> fullName </param>
        // <param name="ignoreCase"> true for case-insensitive lookup </param>
        // <returns> a list of types that have the specified full name but may differ by strong name </returns>
        internal override bool TryGetTypeByName(string fullName, bool ignoreCase, out TypeUsage usage)
        {
            Check.NotEmpty(fullName, "fullName");

            EdmType edmType = null;

            if (MetadataWorkspace.TryGetItem(fullName, ignoreCase, TargetDataspace, out edmType))
            {
                usage = TypeUsage.Create(edmType);
                usage = Helper.GetModelTypeUsage(usage);
                return(true);
            }

            return(_modelPerspective.TryGetTypeByName(fullName, ignoreCase, out usage));
        }
Esempio n. 3
0
 internal RowType GetKeyRowType()
 {
     if (_keyRow == null)
     {
         var keyProperties = new List <EdmProperty>(KeyMembers.Count);
         keyProperties.AddRange(KeyMembers.Select(keyMember => new EdmProperty(keyMember.Name, Helper.GetModelTypeUsage(keyMember))));
         Interlocked.CompareExchange(ref _keyRow, new RowType(keyProperties), null);
     }
     return(_keyRow);
 }
 internal RowType GetKeyRowType()
 {
     if (this._keyRow == null)
     {
         List <EdmProperty> edmPropertyList = new List <EdmProperty>(this.KeyMembers.Count);
         edmPropertyList.AddRange(this.KeyMembers.Select <EdmMember, EdmProperty>((Func <EdmMember, EdmProperty>)(keyMember => new EdmProperty(keyMember.Name, Helper.GetModelTypeUsage(keyMember)))));
         Interlocked.CompareExchange <RowType>(ref this._keyRow, new RowType((IEnumerable <EdmProperty>)edmPropertyList), (RowType)null);
     }
     return(this._keyRow);
 }
Esempio n. 5
0
 internal static TypeUsage GetModelTypeUsage(EdmMember member)
 {
     return(Helper.GetModelTypeUsage(member.TypeUsage));
 }