NavigationMemberDescriptor.cs 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. using Ant.ORM;
  2. using System;
  3. using System.Reflection;
  4. namespace Ant.Descriptors
  5. {
  6. public class NavigationMemberDescriptor : MemberDescriptor
  7. {
  8. MemberInfo _memberInfo;
  9. /// <summary>
  10. /// 假设实体 Order 内有个导航属性 User, Order.UserId=User.Id,则 ThisKey 为 Order.UserId,AssociatingKey 为 User.Id
  11. /// </summary>
  12. /// <param name="memberInfo"></param>
  13. /// <param name="memberType"></param>
  14. /// <param name="declaringEntityDescriptor"></param>
  15. /// <param name="thisKey">定义导航属性实体相关的属性或字段名称</param>
  16. /// <param name="associatingKey">关联导航属性实体类型的属性或字段名称</param>
  17. public NavigationMemberDescriptor(MemberInfo memberInfo, Type memberType, FiledMetaData declaringEntityDescriptor, string thisKey, string associatingKey)
  18. : base(declaringEntityDescriptor)
  19. {
  20. this._memberInfo = memberInfo;
  21. this.ThisKey = thisKey;
  22. this.AssociatingKey = associatingKey;
  23. }
  24. /// <summary>
  25. /// 获取有关成员特性的信息并提供对成员元数据的访问
  26. /// </summary>
  27. public override MemberInfo MemberInfo
  28. {
  29. get { return this._memberInfo; }
  30. }
  31. /// <summary>
  32. /// 表示类型声明:类类型、接口类型、数组类型、值类型、枚举类型、类型参数、泛型类型定义,以及开放或封闭构造的泛型类型
  33. /// </summary>
  34. public override Type MemberInfoType
  35. {
  36. get { throw new NotImplementedException(); }
  37. }
  38. /// <summary>
  39. /// 标记每个已定义为 MemberInfo 的派生类的成员类型
  40. /// </summary>
  41. public override MemberTypes MemberType
  42. {
  43. get { throw new NotImplementedException(); }
  44. }
  45. /// <summary>
  46. /// 假设实体 Order 内有个导航属性 User, Order.UserId=User.Id,则 ThisKey 为 Order.UserId,AssociatingKey 为 User.Id
  47. /// </summary>
  48. public string ThisKey { get; private set; }
  49. public string AssociatingKey { get; private set; }
  50. }
  51. }