电子药箱通讯服务端
Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace RDH.Data
  7. {
  8. public abstract class BaseBLL
  9. {
  10. public BaseBLL() { InitMaps(); }
  11. internal Dictionary<string, string> ColumnPropMaps = new Dictionary<string, string>();
  12. internal abstract String TABLE_NAME {get;}//TB_NAME
  13. internal abstract string ENTITY_NAME { get; }
  14. internal abstract String KEY_COLUMN { get; }//KEY_COLUMN
  15. internal virtual string SNAPSHOT_BASE { get { return string.Empty; } }
  16. /// <summary>
  17. /// 获取或设置表的别名
  18. /// </summary>
  19. internal virtual String AliasTableName
  20. {
  21. get;
  22. set;
  23. }
  24. internal abstract void InitMaps();
  25. protected virtual string BuildBaseSql()
  26. {
  27. StringBuilder selectValues = new StringBuilder();
  28. foreach (var c in ColumnPropMaps)
  29. {
  30. selectValues.AppendFormat("\"{0}\" \"{1}\",", c.Key, c.Value);
  31. }
  32. selectValues.Remove(selectValues.Length - 1, 1);
  33. return string.Format("SELECT {1} FROM \"{0}\" ", TABLE_NAME, selectValues);
  34. }
  35. protected virtual string BuildGetSql()
  36. {
  37. StringBuilder selectValues = new StringBuilder();
  38. string keyWhere = string.Format("\"{0}\" = :{1}", KEY_COLUMN, ColumnPropMaps[KEY_COLUMN]);
  39. foreach (var c in ColumnPropMaps)
  40. {
  41. selectValues.AppendFormat("\"{0}\" \"{1}\",", c.Key, c.Value);
  42. }
  43. selectValues.Remove(selectValues.Length - 1, 1);
  44. return string.Format("SELECT {1} FROM \"{0}\" WHERE {2}", TABLE_NAME, selectValues, keyWhere);
  45. }
  46. protected virtual string BuildInsertSql()
  47. {
  48. StringBuilder cols = new StringBuilder();
  49. StringBuilder parms = new StringBuilder();
  50. foreach (var c in ColumnPropMaps)
  51. {
  52. cols.AppendFormat("\"{0}\",", c.Key);
  53. parms.AppendFormat(":{0},", c.Value);
  54. }
  55. cols.Remove(cols.Length - 1, 1);
  56. parms.Remove(parms.Length - 1, 1);
  57. return string.Format("INSERT INTO \"{0}\" ({1}) VALUES ({2})", TABLE_NAME, cols, parms);
  58. }
  59. protected virtual string BuildUpdateSql()
  60. {
  61. StringBuilder setters = new StringBuilder();
  62. string keyWhere = string.Format("\"{0}\" = :{1}", KEY_COLUMN, ColumnPropMaps[KEY_COLUMN]);
  63. foreach (var c in ColumnPropMaps)
  64. {
  65. if (c.Key != KEY_COLUMN)
  66. setters.AppendFormat("\"{0}\" = :{1},", c.Key, c.Value);
  67. }
  68. setters.Remove(setters.Length - 1, 1);
  69. return string.Format("UPDATE \"{0}\" SET {1} WHERE {2}", TABLE_NAME, setters, keyWhere);
  70. }
  71. protected virtual string BuildDeleteSql()
  72. {
  73. string keyWhere = string.Format("\"{0}\" = :{1}", KEY_COLUMN, ColumnPropMaps[KEY_COLUMN]);
  74. return string.Format("DELETE FROM \"{0}\" WHERE {1}", TABLE_NAME, keyWhere);
  75. }
  76. protected virtual string BuildGetCurrentSql()
  77. {
  78. StringBuilder selectValues = new StringBuilder();
  79. string keyWhere = string.Format("\"{0}\" = :{1} ", "KEY", "Key");
  80. foreach (var c in ColumnPropMaps)
  81. {
  82. selectValues.AppendFormat("\"{0}\" \"{1}\",", c.Key, c.Value);
  83. }
  84. selectValues.Remove(selectValues.Length - 1, 1);
  85. return string.Format("SELECT {1} FROM \"{0}\" WHERE {2}", TABLE_NAME, selectValues, keyWhere);
  86. }
  87. protected virtual string BuildInsertSnapshotBaseSql()
  88. {
  89. StringBuilder cols = new StringBuilder();
  90. StringBuilder parms = new StringBuilder();
  91. cols.AppendFormat("\"{0}\",", "KEY");
  92. parms.AppendFormat(":{0},", "Key");
  93. cols.Remove(cols.Length - 1, 1);
  94. parms.Remove(parms.Length - 1, 1);
  95. return string.Format("INSERT INTO \"{0}\" ({1}) VALUES ({2})", SNAPSHOT_BASE, cols, parms);
  96. }
  97. }
  98. }