ASP.NET三层架构源码(CodeSmith版)之一:Table-BLL层
动软代码生成器生成的ASP.NET三层架构代码比较规范,是学习ASP.NET的好例子
此三层架构改造自动软的工厂模式模板,使用CodeSmith进行重写,以方便大家修改模板文件
以下是针对表格的BLL层源码:
<%@ CodeTemplate Language="C#" TargetLanguage="C#" Description="Generates a class including a special informational header" %>
<%@ Assembly Name="SchemaExplorer" %>
<%@ Import Namespace="SchemaExplorer" %>
<%@ Import Namespace="System.Text" %>
<%@ Property Name="TableName" Type="TableSchema" DeepLoad="True" Optional="False" Category="01. Getting Started - Required" Description="" %>
<%@ Property Name="Namespace" Type="String" Category="Context" Description="NameSpace" Default="Crs811NameSpace"%>
<%@ Property Name="Author" Type="String" Category="Context" Description="Author" Default="chenr"%>
<%@ Property Name="TablePrefix" Type="System.String" Default="T" Category="Context" Description="The prefix to remove from table names" %>
/*------------------------------------------------
// File Name:<%=ClearPrefix(TableName.Name) %>.cs
// File Description:<%=ClearPrefix(TableName.Name) %> Business Logic
// Author:<%=Author%>
// Create Time:<%= DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss")%>
//------------------------------------------------*/
using System;
using System.Text;
using System.Data;
using System.Collections.Generic;
using <%=Namespace%>.DBUtility;
using <%=Namespace%>.Model;
using <%=Namespace%>.DALFactory;
using <%=Namespace%>.IDAL;
namespace <%=Namespace%>.BLL
{
///
/// <%=ClearPrefix(TableName.Name) %>
///
public partial class <%=ClearPrefix(TableName.Name) %>
{
private readonly I<%=ClearPrefix(TableName.Name) %> dal = <%=Namespace%>DALFactory.Create<%=ClearPrefix(TableName.Name) %>();
public <%=ClearPrefix(TableName.Name) %>() {}
#region BasicMethod
///
/// 得到最大ID
///
public int GetMaxId()
{
return dal.GetMaxId();
}
///
/// 是否存在该记录
///
public bool Exists(<%= GetInParameter(TableName) %>)
{
return dal.Exists(<%= GetPK(TableName) %>);
}
///
/// 增加一条数据
///
public bool Add(m<%=ClearPrefix(TableName.Name) %> model)
{
return dal.Add(model);
}
///
/// 更新一条数据
///
public bool Update(m<%=ClearPrefix(TableName.Name) %> model)
{
return dal.Update(model);
}
///
/// 删除一条数据
///
public bool Delete(<%= GetInParameter(TableName) %>)
{
return dal.Delete(<%= GetPK(TableName) %>);
}
///
/// 得到一个对象实体
///
public m<%=ClearPrefix(TableName.Name) %> GetModel(<%= GetInParameter(TableName) %>)
{
return dal.GetModel(<%= GetPK(TableName) %>);
}
///
/// 得到一个对象实体,从缓存中
///
/*public m<%=ClearPrefix(TableName.Name) %> GetModelByCache(<%= GetInParameter(TableName) %>)
{
string CacheKey = "tTestModel-" + c1+C5+C8;
object objModel = Maticsoft.Common.DataCache.GetCache(CacheKey);
if (objModel == null)
{
try
{
objModel = dal.GetModel(<%= GetPK(TableName) %>);
if (objModel != null)
{
int ModelCache = Maticsoft.Common.ConfigHelper.GetConfigInt("ModelCache");
Maticsoft.Common.DataCache.SetCache(CacheKey, objModel, DateTime.Now.AddMinutes(ModelCache), TimeSpan.Zero);
}
}
catch{}
}
return (<%=ClearPrefix(TableName.Name) %>)objModel;
}*/
///
/// 获得数据列表
///
public DataSet GetList(string strWhere)
{
return dal.GetList(strWhere);
}
///
/// 获得前几行数据
///
public DataSet GetList(int Top,string strWhere,string filedOrder)
{
return dal.GetList(Top,strWhere,filedOrder);
}
///
/// 获得数据列表
///
public List> GetModelList(string strWhere)
{
DataSet ds = dal.GetList(strWhere);
return DataTableToList(ds.Tables[0]);
}
///
/// 获得数据列表
///
public List> DataTableToList(DataTable dt)
{
List> modelList = new List>();
int rowsCount = dt.Rows.Count;
if (rowsCount > 0)
{
m<%=ClearPrefix(TableName.Name) %> model;
for (int n = 0; n < rowsCount; n++)
{
model = dal.DataRowToModel(dt.Rows[n]);
if (model != null)
{
modelList.Add(model);
}
}
}
return modelList;
}
///
/// 获得数据列表
///
public DataSet GetAllList()
{
return GetList("");
}
///
/// 分页获取数据列表
///
public int GetRecordCount(string strWhere)
{
return dal.GetRecordCount(strWhere);
}
///
/// 分页获取数据列表
///
public DataSet GetListByPage(string strWhere, string orderby, int startIndex, int endIndex)
{
return dal.GetListByPage( strWhere, orderby, startIndex, endIndex);
}
///
/// 分页获取数据列表
///
//public DataSet GetList(int PageSize,int PageIndex,string strWhere)
//{
//return dal.GetList(PageSize,PageIndex,strWhere);
//}
#endregion BasicMethod
#region ExtensionMethod
#endregion ExtensionMethod
}
}