using System; using System.Collections.Generic; using System.Text; using System.Data; using System.Data.Common; using System.Data.SqlClient; using Microsoft.Practices.EnterpriseLibrary.Data; using Befri.Query; using Befri.Goldhoo.Models; namespace Befri.Goldhoo.DataAccess { /// /// <%= Table.Text %>数据存取类 /// 生成日期: <%= DateTime.Today.ToLongDateString() %> <%= DateTime.Now.ToShortTimeString() %> /// /// /// 该文件是由代码生成器自动生成的, 请不要随意修改, 你的修改将在代码重新生成时会被覆盖, /// 如果要对该类进行修改, 请直接修改该分部类的<%= Table.AliasName %>DAO文件(文件名不含.designer) /// public partial class <%= Table.AliasName %>DAO : BaseDAO { /// /// 返回满足查询条件的<%= Table.Text %>实体 /// /// 查询条件 /// <%= Table.Text %>实体 public <%= Table.AliasName %> Find<%= Table.AliasName%>(QueryParameter param) { string sql = @"<%= Request.Table.SqlBuilder.GetSelectCommandText() %>"; if (param != null) { sql = QueryParameter.CompleteSqlString(sql, param); } DatabaseProviderFactory factory = new DatabaseProviderFactory(); Database db = factory.CreateDefault(); DbCommand command = db.GetSqlStringCommand(sql); if (param != null) { //设置参数 foreach (IExpression exp in param.WhereExpressions) { if (exp is SimpleExpression) { SimpleExpression simple = exp as SimpleExpression; db.AddInParameter(command, simple.ExpName, simple.DbType, simple.Value); } } } <%= Table.AliasName %> <%= Table.aliasName %> = null; using (IDataReader dr = db.ExecuteReader(command)) { if (dr.Read()) { <%= Table.aliasName %> = new <%= Table.AliasName %>(); <% foreach(ColumnSchema column in Table.Columns) {%> <%= GetFillValueString(column) %> <% } %> } } return <%= Table.aliasName %>; } /// /// 返回满足查询条件的<%= Table.Text %>实体列表 /// /// 查询条件 /// <%= Table.Text %>实体列表 public IList<<%= Table.AliasName %>> Get<%= Table.AliasName %>s(QueryParameter param) { string sql = @"<%= Request.Table.SqlBuilder.GetSelectCommandText() %>"; if (param != null) { sql = QueryParameter.CompleteSqlString(sql, param); } DatabaseProviderFactory factory = new DatabaseProviderFactory(); Database db = factory.CreateDefault(); DbCommand command = db.GetSqlStringCommand(sql); if (param != null) { //设置参数 foreach (IExpression exp in param.WhereExpressions) { if (exp is SimpleExpression) { SimpleExpression simple = exp as SimpleExpression; db.AddInParameter(command, simple.ExpName, simple.DbType, simple.Value); } } } IList<<%= Table.AliasName %>> list = new List<<%= Table.AliasName %>>(); using (IDataReader dr = db.ExecuteReader(command)) { while (dr.Read()) { <%= Table.AliasName %> <%= Table.aliasName %> = new <%= Table.AliasName %>(); <% foreach(ColumnSchema column in Table.Columns) {%> <%= GetFillValueString(column) %> <% } %> list.Add(<%= Table.aliasName %>); } } return list; } partial void OnInserting(<%= Table.AliasName %> <%= Table.aliasName %>); partial void OnInserted(<%= Table.AliasName %> <%= Table.aliasName %>, int affectedRecords); /// /// 插入<%= Table.Text %>记录 /// /// <%= Table.Text %>对象 /// public int Insert(<%= Table.AliasName %> <%= Table.aliasName %>) { OnInserting(<%= Table.aliasName %>); string sql = @"<%= Table.SqlBuilder.GetInsertCommandText(true) %>"; DatabaseProviderFactory factory = new DatabaseProviderFactory(); Database db = factory.CreateDefault(); DbCommand command = db.GetSqlStringCommand(sql); <% foreach(ColumnSchema column in Table.Columns) { if (column.AutoIncrement == true) { %> <%= GetIdentityOutParameterString(column) %> <% } else if (column.Inserted == true) { %> <%= GetInParameterString(column) %> <% } } //end of foreach %> int affectedRecords = db.ExecuteNonQuery(command); OnInserted(<%= Table.aliasName %>, affectedRecords); if (affectedRecords < 1) { throw new ApplicationException("插入数据失败, 没有记录被插入"); } <% if (Table.IdentityColumn != null) { %> return (<%= Table.IdentityColumn.CSDataType %>)db.GetParameterValue(command, "<%= Table.IdentityColumn.AliasName %>"); <% } else { %> return affectedRecords; <% } %> } partial void OnUpdating(<%= Table.AliasName %> <%= Table.aliasName %>); partial void OnUpdated(<%= Table.AliasName %> <%= Table.aliasName %>, int affectedRecords); /// /// 更新<%= Table.Text %>记录 /// /// <%= Table.Text %>对象 /// 受影响的记录数 public int Update(<%= Table.AliasName %> <%= Table.aliasName %>) { OnUpdating(<%= Table.aliasName %>); string sql = @"<%= Request.Table.SqlBuilder.GetUpdateCommandText() %>"; DatabaseProviderFactory factory = new DatabaseProviderFactory(); Database db = factory.CreateDefault(); DbCommand command = db.GetSqlStringCommand(sql); <% foreach(ColumnSchema column in Table.Columns) { if (column.Updated == true && column.ColumnName != "ModifiedOn" && column.ColumnName != "VersionNumber") {%> <%= GetInParameterString(column) %> <% } } //end of foreach %> int affectedRecords = db.ExecuteNonQuery(command); OnUpdated(<%= Table.aliasName %>, affectedRecords); return affectedRecords; } /// /// 删除<%= Table.Text %>记录 /// <% foreach(Arista.Data.ColumnSchema column in Table.Keys){%>/// <%= column.Text %><% } %> /// 受影响的记录数 public int Delete(<%= KeyParamsText %>) { string sql = @"<%= Request.Table.SqlBuilder.GetDeleteCommandText() %>"; DatabaseProviderFactory factory = new DatabaseProviderFactory(); Database db = factory.CreateDefault(); DbCommand command = db.GetSqlStringCommand(sql); <% Response.Output.Indent = 3; foreach(ColumnSchema column in Table.Keys) { Response.Output.WriteLine("db.AddInParameter(command, \"{0}\", {1}, {2});", column.ColumnName, column.EnterpriseLibraryDataType, column.aliasName); } Response.Output.Indent = 0; %> return db.ExecuteNonQuery(command); } } }