1 //---------------------------------------------------------------------
2 // <copyright file="ObjectMemberMapping.cs" company="Microsoft">
3 // Copyright (c) Microsoft Corporation. All rights reserved.
7 // @backupOwner Microsoft
8 //---------------------------------------------------------------------
11 using System.Collections.Generic;
14 using System.Data.Metadata.Edm;
16 namespace System.Data.Mapping {
18 /// Mapping metadata for all OC member maps.
20 internal abstract class ObjectMemberMapping
24 /// Constrcut a new member mapping metadata object
26 /// <param name="edmMember"></param>
27 /// <param name="clrMember"></param>
28 protected ObjectMemberMapping(EdmMember edmMember, EdmMember clrMember)
30 System.Diagnostics.Debug.Assert(edmMember.BuiltInTypeKind == clrMember.BuiltInTypeKind, "BuiltInTypeKind must be the same");
31 this.m_edmMember = edmMember;
32 this.m_clrMember = clrMember;
38 EdmMember m_edmMember; //EdmMember metadata representing the Cdm member for which the mapping is specified
39 EdmMember m_clrMember; //EdmMember metadata representing the Clr member for which the mapping is specified
45 /// The PropertyMetadata object that represents the Cdm member for which mapping is being specified
47 internal EdmMember EdmMember
51 return this.m_edmMember;
56 /// The PropertyMetadata object that represents the Clr member for which mapping is being specified
58 internal EdmMember ClrMember
62 return this.m_clrMember;
67 /// Returns the member mapping kind
69 internal abstract MemberMappingKind MemberMappingKind { get; }
74 /// Represents the various kind of member mapping
76 internal enum MemberMappingKind
78 ScalarPropertyMapping = 0,
80 NavigationPropertyMapping = 1,
82 AssociationEndMapping =2,
84 ComplexPropertyMapping = 3,