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)); }
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); }
internal static TypeUsage GetModelTypeUsage(EdmMember member) { return(Helper.GetModelTypeUsage(member.TypeUsage)); }