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);
}
}
}