MetaData.cs 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using Ant.Frame;
  5. using System.Reflection;
  6. using Ant.Core.Visitors;
  7. using Ant.Descriptors;
  8. using Ant.DbExpressions;
  9. namespace Ant.ORM
  10. {
  11. /// <summary>
  12. /// 类成员的属性
  13. /// </summary>
  14. public class FiledMetaData
  15. {
  16. Dictionary<MemberInfo, MappingMemberDescriptor> _mappingMemberDescriptors;
  17. /// <summary>
  18. /// 类中所有成员属性
  19. /// </summary>
  20. public Dictionary<MemberInfo, MappingMemberDescriptor> MappingMemberDescriptors
  21. {
  22. get { return this._mappingMemberDescriptors; }
  23. set { _mappingMemberDescriptors = value; }
  24. }
  25. Dictionary<MemberInfo, DbColumnAccessExpression> _memberColumnMap;
  26. /// <summary>
  27. /// 对应数据库字段
  28. /// </summary>
  29. public Dictionary<MemberInfo, DbColumnAccessExpression> MemberColumnMap
  30. {
  31. get { return this._memberColumnMap; }
  32. set { _memberColumnMap = value; }
  33. }
  34. private List<MemberInfo> _fields;
  35. /// <summary>
  36. /// 实体的值集合
  37. /// </summary>
  38. public List<MemberInfo> Fields
  39. {
  40. get { return _fields; }
  41. set { _fields = value; }
  42. }
  43. MappingMemberDescriptor _primaryKey = null;
  44. /// <summary>
  45. /// 主键
  46. /// </summary>
  47. public MappingMemberDescriptor PrimaryKey
  48. {
  49. get { return this._primaryKey; }
  50. set { _primaryKey = value; }
  51. }
  52. MappingMemberDescriptor _autoIncrement = null;
  53. /// <summary>
  54. /// 自增长
  55. /// </summary>
  56. public MappingMemberDescriptor AutoIncrement
  57. {
  58. get { return this._autoIncrement; }
  59. set { _autoIncrement = value; }
  60. }
  61. /// <summary>
  62. /// 类中表名
  63. /// </summary>
  64. public DbTable Table
  65. {
  66. get; set;
  67. }
  68. /// <summary>
  69. /// 实体类属性
  70. /// </summary>
  71. public Type EntityType { get; set; }
  72. /// <summary>
  73. ///
  74. /// </summary>
  75. public PropertyInfo[] Propertys { get; set; }
  76. DefaultExpressionVisitor _visitor = null;
  77. /// <summary>
  78. ///
  79. /// </summary>
  80. public DefaultExpressionVisitor Visitor
  81. {
  82. get
  83. {
  84. if (this._visitor == null)
  85. this._visitor = new DefaultExpressionVisitor(this);
  86. return this._visitor;
  87. }
  88. }
  89. }
  90. /// <summary>
  91. /// 类成员属性和类值实体
  92. /// </summary>
  93. public class MetaData
  94. {
  95. public MetaData()
  96. {
  97. }
  98. #region 属性
  99. /// <summary>
  100. /// 实体属性
  101. /// </summary>
  102. public FiledMetaData FiledMeta
  103. {
  104. get; set;
  105. }
  106. /// <summary>
  107. /// 找出实体中有值的集合DbColumn是实体中属性名和属性值,DbExpression是用查询
  108. /// </summary>
  109. public Dictionary<string, DbColumn> FieldsColumns
  110. {
  111. get; set;
  112. }
  113. /// <summary>
  114. /// 找出实体中有值的集合
  115. /// </summary>
  116. public Dictionary<string, DbColumn> WhereColumns
  117. {
  118. get; set;
  119. }
  120. ///// <summary>
  121. ///// 状态值属性一般用Update操作
  122. ///// </summary>
  123. //public Dictionary<string, EntityValue> Values
  124. //{
  125. // get; set;
  126. //}
  127. /// <summary>
  128. /// 更新列
  129. /// </summary>
  130. public Dictionary<string, DbColumn> UpdateColumns
  131. {
  132. get; set;
  133. }
  134. private EntityPersistType persistType;
  135. /// <summary>
  136. /// 操作类型
  137. /// </summary>
  138. public EntityPersistType PersistType
  139. {
  140. get { return persistType; }
  141. set { persistType = value; }
  142. }
  143. //private string _moduleName;
  144. ///// <summary>
  145. ///// 模块
  146. ///// </summary>
  147. //public string ModuleName
  148. //{
  149. // get { return _moduleName; }
  150. // set { _moduleName = value; }
  151. //}
  152. /// <summary>
  153. /// 自定义查询条件
  154. /// </summary>
  155. public string WhereSql
  156. {
  157. get; set;
  158. }
  159. #endregion
  160. }
  161. }