DataAccess.Designer.cst 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using System.Data;
  5. using System.Data.Common;
  6. using System.Data.SqlClient;
  7. using Microsoft.Practices.EnterpriseLibrary.Data;
  8. using Befri.Query;
  9. using Befri.Goldhoo.Models;
  10. namespace Befri.Goldhoo.DataAccess
  11. {
  12. /// <summary>
  13. /// <%= Table.Text %>数据存取类
  14. /// 生成日期: <%= DateTime.Today.ToLongDateString() %> <%= DateTime.Now.ToShortTimeString() %>
  15. ///</summary>
  16. /// <remarks>
  17. /// 该文件是由代码生成器自动生成的, 请不要随意修改, 你的修改将在代码重新生成时会被覆盖,
  18. /// 如果要对该类进行修改, 请直接修改该分部类的<%= Table.AliasName %>DAO文件(文件名不含.designer)
  19. /// </remarks>
  20. public partial class <%= Table.AliasName %>DAO : BaseDAO
  21. {
  22. /// <summary>
  23. /// 返回满足查询条件的<%= Table.Text %>实体
  24. /// </summary>
  25. /// <param name="param">查询条件</param>
  26. /// <returns><%= Table.Text %>实体</returns>
  27. public <%= Table.AliasName %> Find<%= Table.AliasName%>(QueryParameter param)
  28. {
  29. string sql = @"<%= Request.Table.SqlBuilder.GetSelectCommandText() %>";
  30. if (param != null)
  31. {
  32. sql = QueryParameter.CompleteSqlString(sql, param);
  33. }
  34. DatabaseProviderFactory factory = new DatabaseProviderFactory();
  35. Database db = factory.CreateDefault();
  36. DbCommand command = db.GetSqlStringCommand(sql);
  37. if (param != null)
  38. {
  39. //设置参数
  40. foreach (IExpression exp in param.WhereExpressions)
  41. {
  42. if (exp is SimpleExpression)
  43. {
  44. SimpleExpression simple = exp as SimpleExpression;
  45. db.AddInParameter(command, simple.ExpName, simple.DbType, simple.Value);
  46. }
  47. }
  48. }
  49. <%= Table.AliasName %> <%= Table.aliasName %> = null;
  50. using (IDataReader dr = db.ExecuteReader(command))
  51. {
  52. if (dr.Read())
  53. {
  54. <%= Table.aliasName %> = new <%= Table.AliasName %>();
  55. <% foreach(ColumnSchema column in Table.Columns) {%>
  56. <%= GetFillValueString(column) %> <% } %>
  57. }
  58. }
  59. return <%= Table.aliasName %>;
  60. }
  61. /// <summary>
  62. /// 返回满足查询条件的<%= Table.Text %>实体列表
  63. /// </summary>
  64. /// <param name="param">查询条件</param>
  65. /// <returns><%= Table.Text %>实体列表</returns>
  66. public IList<<%= Table.AliasName %>> Get<%= Table.AliasName %>s(QueryParameter param)
  67. {
  68. string sql = @"<%= Request.Table.SqlBuilder.GetSelectCommandText() %>";
  69. if (param != null)
  70. {
  71. sql = QueryParameter.CompleteSqlString(sql, param);
  72. }
  73. DatabaseProviderFactory factory = new DatabaseProviderFactory();
  74. Database db = factory.CreateDefault();
  75. DbCommand command = db.GetSqlStringCommand(sql);
  76. if (param != null)
  77. {
  78. //设置参数
  79. foreach (IExpression exp in param.WhereExpressions)
  80. {
  81. if (exp is SimpleExpression)
  82. {
  83. SimpleExpression simple = exp as SimpleExpression;
  84. db.AddInParameter(command, simple.ExpName, simple.DbType, simple.Value);
  85. }
  86. }
  87. }
  88. IList<<%= Table.AliasName %>> list = new List<<%= Table.AliasName %>>();
  89. using (IDataReader dr = db.ExecuteReader(command))
  90. {
  91. while (dr.Read())
  92. {
  93. <%= Table.AliasName %> <%= Table.aliasName %> = new <%= Table.AliasName %>();
  94. <% foreach(ColumnSchema column in Table.Columns) {%>
  95. <%= GetFillValueString(column) %> <% } %>
  96. list.Add(<%= Table.aliasName %>);
  97. }
  98. }
  99. return list;
  100. }
  101. partial void OnInserting(<%= Table.AliasName %> <%= Table.aliasName %>);
  102. partial void OnInserted(<%= Table.AliasName %> <%= Table.aliasName %>, int affectedRecords);
  103. /// <summary>
  104. /// 插入<%= Table.Text %>记录
  105. /// </summary>
  106. /// <param name="<%= Table.aliasName %>"><%= Table.Text %>对象</param>
  107. /// <returns></returns>
  108. public int Insert(<%= Table.AliasName %> <%= Table.aliasName %>)
  109. {
  110. OnInserting(<%= Table.aliasName %>);
  111. string sql = @"<%= Table.SqlBuilder.GetInsertCommandText(true) %>";
  112. DatabaseProviderFactory factory = new DatabaseProviderFactory();
  113. Database db = factory.CreateDefault();
  114. DbCommand command = db.GetSqlStringCommand(sql);
  115. <% foreach(ColumnSchema column in Table.Columns)
  116. {
  117. if (column.AutoIncrement == true)
  118. { %>
  119. <%= GetIdentityOutParameterString(column) %> <%
  120. }
  121. else if (column.Inserted == true) { %>
  122. <%= GetInParameterString(column) %> <%
  123. }
  124. } //end of foreach
  125. %>
  126. int affectedRecords = db.ExecuteNonQuery(command);
  127. OnInserted(<%= Table.aliasName %>, affectedRecords);
  128. if (affectedRecords < 1)
  129. {
  130. throw new ApplicationException("插入数据失败, 没有记录被插入");
  131. }
  132. <% if (Table.IdentityColumn != null)
  133. { %>
  134. return (<%= Table.IdentityColumn.CSDataType %>)db.GetParameterValue(command, "<%= Table.IdentityColumn.AliasName %>");
  135. <% }
  136. else { %>
  137. return affectedRecords; <% } %>
  138. }
  139. partial void OnUpdating(<%= Table.AliasName %> <%= Table.aliasName %>);
  140. partial void OnUpdated(<%= Table.AliasName %> <%= Table.aliasName %>, int affectedRecords);
  141. /// <summary>
  142. /// 更新<%= Table.Text %>记录
  143. /// </summary>
  144. /// <param name="<%= Table.aliasName %>"><%= Table.Text %>对象</param>
  145. /// <returns>受影响的记录数</returns>
  146. public int Update(<%= Table.AliasName %> <%= Table.aliasName %>)
  147. {
  148. OnUpdating(<%= Table.aliasName %>);
  149. string sql = @"<%= Request.Table.SqlBuilder.GetUpdateCommandText() %>";
  150. DatabaseProviderFactory factory = new DatabaseProviderFactory();
  151. Database db = factory.CreateDefault();
  152. DbCommand command = db.GetSqlStringCommand(sql);
  153. <% foreach(ColumnSchema column in Table.Columns)
  154. {
  155. if (column.Updated == true && column.ColumnName != "ModifiedOn" && column.ColumnName != "VersionNumber") {%>
  156. <%= GetInParameterString(column) %> <%
  157. }
  158. } //end of foreach
  159. %>
  160. int affectedRecords = db.ExecuteNonQuery(command);
  161. OnUpdated(<%= Table.aliasName %>, affectedRecords);
  162. return affectedRecords;
  163. }
  164. /// <summary>
  165. /// 删除<%= Table.Text %>记录
  166. /// </summary>
  167. <% foreach(Arista.Data.ColumnSchema column in Table.Keys){%>/// <param name="<%= column.aliasName %>"><%= column.Text %></param><% } %>
  168. /// <returns>受影响的记录数</returns>
  169. public int Delete(<%= KeyParamsText %>)
  170. {
  171. string sql = @"<%= Request.Table.SqlBuilder.GetDeleteCommandText() %>";
  172. DatabaseProviderFactory factory = new DatabaseProviderFactory();
  173. Database db = factory.CreateDefault();
  174. DbCommand command = db.GetSqlStringCommand(sql);
  175. <% Response.Output.Indent = 3;
  176. foreach(ColumnSchema column in Table.Keys)
  177. {
  178. Response.Output.WriteLine("db.AddInParameter(command, \"{0}\", {1}, {2});", column.ColumnName, column.EnterpriseLibraryDataType, column.aliasName);
  179. }
  180. Response.Output.Indent = 0;
  181. %>
  182. return db.ExecuteNonQuery(command);
  183. }
  184. }
  185. }