[C#]一步一步开发自己的自动代码生成工具之六:业务层模板
2008-07-15 17:55
1031 查看
3。BLL模板
<?xml version="1.0" encoding="UTF-8" ?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> using System; using System.Collections.Generic; using System.Data.SqlClient; using System.Data; using System.Text;
using <xsl:value-of select="TabelModel/NameSpacePri"/>Model; using <xsl:value-of select="TabelModel/NameSpacePri"/>DAL;
namespace <xsl:value-of select="TabelModel/NameSpacePri"/>BLL { public partial class <xsl:value-of select="TabelModel/ModelName"/>BLL {
#region 属性/构造函数 /// <summary> /// 数据链路访问对象 /// </summary> private <xsl:value-of select="TabelModel/ModelName"/>DAL DAL = null;
/// <summary> /// 默认构造函数 ///</summary> public <xsl:value-of select="TabelModel/ModelName"/>BLL() { DAL = new <xsl:value-of select="TabelModel/ModelName"/>DAL(); } #endregion #region 数据检测 <xsl:if test="TabelModel/HasPK = 'true'"> /// <summary> /// 是否存在指定主键的数据 ///</summary> <xsl:for-each select="TabelModel/Fields/FieldModel[IsPK = 'true']"> /// <param><xsl:attribute name="name"><xsl:value-of select="VarName"/></xsl:attribute>指定<xsl:value-of select="VarName"/></param> </xsl:for-each> /// <returns>True/False</returns> public bool ExistsWithPK(<xsl:value-of select="TabelModel/Fields/FieldModel[IsPK = 'true'][1]/VarType"/><xsl:text> </xsl:text><xsl:value-of select="TabelModel/Fields/FieldModel[IsPK = 'true'][1]/VarName"/><xsl:for-each select="TabelModel/Fields/FieldModel[IsPK = 'true'][position()>1]">, <xsl:value-of select="VarType"/><xsl:text> </xsl:text><xsl:value-of select="VarName"/></xsl:for-each>) { return DAL.ExistsWithPK(<xsl:value-of select="TabelModel/Fields/FieldModel[IsPK = 'true'][1]/VarName"/><xsl:for-each select="TabelModel/Fields/FieldModel[IsPK = 'true'][position()>1]">, <xsl:value-of select="VarName"/></xsl:for-each>); } </xsl:if> <xsl:if test="TabelModel/HasLogicKey = 'true'"> /// <summary> /// 是否存在指定逻辑主键的数据 ///</summary> <xsl:for-each select="TabelModel/Fields/FieldModel[IsLogicKey = 'true']"> /// <param><xsl:attribute name="name"><xsl:value-of select="VarName"/></xsl:attribute>指定<xsl:value-of select="VarName"/></param> </xsl:for-each> /// <returns>True/False</returns> public bool ExistsWithLogicKey(<xsl:value-of select="TabelModel/Fields/FieldModel[IsLogicKey = 'true'][1]/VarType"/><xsl:text> </xsl:text><xsl:value-of select="TabelModel/Fields/FieldModel[IsLogicKey = 'true'][1]/VarName"/><xsl:for-each select="TabelModel/Fields/FieldModel[IsLogicKey = 'true'][position()>1]">, <xsl:value-of select="VarType"/><xsl:text> </xsl:text><xsl:value-of select="VarName"/></xsl:for-each>) { return DAL.ExistsWithLogicKey(<xsl:value-of select="TabelModel/Fields/FieldModel[IsLogicKey = 'true'][1]/VarName"/><xsl:for-each select="TabelModel/Fields/FieldModel[IsLogicKey = 'true'][position()>1]">, <xsl:value-of select="VarName"/></xsl:for-each>); } </xsl:if>
/// <summary> /// 是否存在满足指定条件的数据 ///</summary> /// <param name="strWhere">条件(不包含“Where”关键字)</param> /// <returns>True/False</returns> public bool ExistsWithParam(string strWhere) { return DAL.ExistsWithParam(strWhere); }
#endregion
#region 数据检索 <xsl:if test="TabelModel/HasPK = 'true'"> /// <summary> /// 根据主键检索数据实体 /// </summary> <xsl:for-each select="TabelModel/Fields/FieldModel[IsPK = 'true']"> /// <param> <xsl:attribute name="name"> <xsl:value-of select="VarName"/> </xsl:attribute> <xsl:value-of select="VarName"/> </param> </xsl:for-each> /// <returns>检索结果</returns> public <xsl:value-of select="TabelModel/ModelName"/>Model Get<xsl:value-of select="TabelModel/ModelName"/>ByPK(<xsl:value-of select="TabelModel/Fields/FieldModel[IsPK = 'true'][1]/VarType"/><xsl:text> </xsl:text><xsl:value-of select="TabelModel/Fields/FieldModel[IsPK = 'true'][1]/VarName"/><xsl:for-each select="TabelModel/Fields/FieldModel[IsPK = 'true'][position()>1]">, <xsl:value-of select="VarType"/><xsl:text> </xsl:text><xsl:value-of select="VarName"/></xsl:for-each>) { return DAL.Get<xsl:value-of select="TabelModel/ModelName"/>ByPK(<xsl:value-of select="TabelModel/Fields/FieldModel[IsPK = 'true'][1]/VarName"/><xsl:for-each select="TabelModel/Fields/FieldModel[IsPK = 'true'][position()>1]">, <xsl:value-of select="VarName"/></xsl:for-each>); } </xsl:if> <xsl:if test="TabelModel/HasLogicKey = 'true'"> /// <summary> /// 根据逻辑主键检索数据实体 /// </summary> <xsl:for-each select="TabelModel/Fields/FieldModel[IsLogicKey = 'true']"> /// <param> <xsl:attribute name="name"> <xsl:value-of select="VarName"/> </xsl:attribute> <xsl:value-of select="VarName"/> </param> </xsl:for-each> /// <returns>检索结果</returns> public <xsl:value-of select="TabelModel/ModelName"/>Model Get<xsl:value-of select="TabelModel/ModelName"/>ByLogicKey(<xsl:value-of select="TabelModel/Fields/FieldModel[IsLogicKey = 'true'][1]/VarType"/><xsl:text> </xsl:text><xsl:value-of select="TabelModel/Fields/FieldModel[IsLogicKey = 'true'][1]/VarName"/><xsl:for-each select="TabelModel/Fields/FieldModel[IsLogicKey = 'true'][position()>1]">, <xsl:value-of select="VarType"/><xsl:text> </xsl:text><xsl:value-of select="VarName"/></xsl:for-each>) { return DAL.Get<xsl:value-of select="TabelModel/ModelName"/>ByLogicKey(<xsl:value-of select="TabelModel/Fields/FieldModel[IsLogicKey = 'true'][1]/VarName"/><xsl:for-each select="TabelModel/Fields/FieldModel[IsLogicKey = 'true'][position()>1]">, <xsl:value-of select="VarName"/></xsl:for-each>); } </xsl:if> /// <summary> /// 根据条件检索数据实体 /// </summary> /// <param name="strWhere">条件</param> /// <returns>检索结果</returns> public <xsl:value-of select="TabelModel/ModelName"/>Model Get<xsl:value-of select="TabelModel/ModelName"/>ByParam(string strWhere) { return DAL.Get<xsl:value-of select="TabelModel/ModelName"/>ByParam(strWhere); } <xsl:if test="TabelModel/HasPK = 'true'"> /// <summary> /// 根据主键检索数据(DataRow) /// </summary> <xsl:for-each select="TabelModel/Fields/FieldModel[IsPK = 'true']"> /// <param> <xsl:attribute name="name"> <xsl:value-of select="VarName"/> </xsl:attribute> <xsl:value-of select="VarName"/> </param> </xsl:for-each> /// <returns>检索结果</returns> public DataRow GetRowByPK(<xsl:value-of select="TabelModel/Fields/FieldModel[IsPK = 'true'][1]/VarType"/><xsl:text> </xsl:text><xsl:value-of select="TabelModel/Fields/FieldModel[IsPK = 'true'][1]/VarName"/><xsl:for-each select="TabelModel/Fields/FieldModel[IsPK = 'true'][position()>1]">, <xsl:value-of select="VarType"/><xsl:text> </xsl:text><xsl:value-of select="VarName"/></xsl:for-each>) { return DAL.GetRowByPK(<xsl:value-of select="TabelModel/Fields/FieldModel[IsPK = 'true'][1]/VarName"/><xsl:for-each select="TabelModel/Fields/FieldModel[IsPK = 'true'][position()>1]">, <xsl:value-of select="VarName"/></xsl:for-each>); } </xsl:if> <xsl:if test="TabelModel/HasLogicKey = 'true'"> /// <summary> /// 根据逻辑主键检索数据(DataRow) /// </summary> <xsl:for-each select="TabelModel/Fields/FieldModel[IsLogicKey = 'true']"> /// <param> <xsl:attribute name="name"> <xsl:value-of select="VarName"/> </xsl:attribute> <xsl:value-of select="VarName"/> </param> </xsl:for-each> /// <returns>检索结果</returns> public DataRow GetRowByLogicKey(<xsl:value-of select="TabelModel/Fields/FieldModel[IsLogicKey = 'true'][1]/VarType"/><xsl:text> </xsl:text><xsl:value-of select="TabelModel/Fields/FieldModel[IsLogicKey = 'true'][1]/VarName"/><xsl:for-each select="TabelModel/Fields/FieldModel[IsLogicKey = 'true'][position()>1]">, <xsl:value-of select="VarType"/><xsl:text> </xsl:text><xsl:value-of select="VarName"/></xsl:for-each>) { return DAL.GetRowByLogicKey(<xsl:value-of select="TabelModel/Fields/FieldModel[IsLogicKey = 'true'][1]/VarName"/><xsl:for-each select="TabelModel/Fields/FieldModel[IsLogicKey = 'true'][position()>1]">, <xsl:value-of select="VarName"/></xsl:for-each>); } </xsl:if> /// <summary> /// 根据条件检索数据(DataRow) /// </summary> /// <param name="strWhere">条件</param> /// <returns>检索结果</returns> public DataRow GetRowByParam(string strWhere) { return DAL.GetRowByParam(strWhere); }
/// <summary> /// 获取所有数据实体列表 /// </summary> /// <returns>检索结果</returns> public List<xsl:text disable-output-escaping="yes"><</xsl:text><xsl:value-of select="TabelModel/ModelName"/>Model<xsl:text disable-output-escaping="yes">></xsl:text> Get<xsl:value-of select="TabelModel/ModelName"/>List() { return DAL.Get<xsl:value-of select="TabelModel/ModelName"/>List(); }
/// <summary> /// 根据条件检索数据实体列表 /// </summary> /// <param name="strWhere">条件</param> /// <returns>检索结果</returns> public List<xsl:text disable-output-escaping="yes"><</xsl:text><xsl:value-of select="TabelModel/ModelName"/>Model<xsl:text disable-output-escaping="yes">></xsl:text> Get<xsl:value-of select="TabelModel/ModelName"/>ListByParam(string strWhere) { return DAL.Get<xsl:value-of select="TabelModel/ModelName"/>ListByParam(strWhere); }
/// <summary> /// 获取所有数据列表(DataTable) /// </summary> /// <returns>检索结果</returns> public DataTable GetTable() { return DAL.GetTableByParam(String.Empty); }
/// <summary> /// 根据条件获取数据列表(DataTable) /// </summary> /// <param name="strWhere">条件</param> /// <returns>检索结果</returns> public DataTable GetTableByParam(string strWhere) { return DAL.GetTableByParam(strWhere); }
#endregion
<xsl:if test="TabelModel/IsView = 'false'"> #region 数据增/删/改
/// <summary> /// 新增 ///</summary> /// <param name="model">数据实体</param> /// <returns></returns> public int Add<xsl:value-of select="TabelModel/ModelName"/>(<xsl:value-of select="TabelModel/ModelName"/>Model model) { return DAL.Add<xsl:value-of select="TabelModel/ModelName"/>(model); }
<xsl:if test="TabelModel/HasPK = 'true'"> /// <summary> /// 编辑 /// </summary> /// <param name="model">数据实体</param> /// <returns></returns> public int Update<xsl:value-of select="TabelModel/ModelName"/>(<xsl:value-of select="TabelModel/ModelName"/>Model model) { return DAL.Update<xsl:value-of select="TabelModel/ModelName"/>(model); }
/// <summary> /// 删除数据实体 /// </summary> /// <param name="model">数据实体</param> /// <returns></returns> public int Delete<xsl:value-of select="TabelModel/ModelName"/>(<xsl:value-of select="TabelModel/ModelName"/>Model model) { return DAL.Delete<xsl:value-of select="TabelModel/ModelName"/>(model); }
/// <summary> /// 根据主键删除 /// </summary> <xsl:for-each select="TabelModel/Fields/FieldModel[IsPK = 'true']"> /// <param> <xsl:attribute name="name"> <xsl:value-of select="VarName"/> </xsl:attribute> <xsl:value-of select="VarName"/> </param> </xsl:for-each> /// <returns></returns> public int DeleteWithPK(<xsl:value-of select="TabelModel/Fields/FieldModel[IsPK = 'true'][1]/VarType"/><xsl:text> </xsl:text><xsl:value-of select="TabelModel/Fields/FieldModel[IsPK = 'true'][1]/VarName"/><xsl:for-each select="TabelModel/Fields/FieldModel[IsPK = 'true'][position()>1]">, <xsl:value-of select="VarType"/><xsl:text> </xsl:text><xsl:value-of select="VarName"/></xsl:for-each>) { return DAL.DeleteWithPK(<xsl:value-of select="TabelModel/Fields/FieldModel[IsPK = 'true'][1]/VarName"/><xsl:for-each select="TabelModel/Fields/FieldModel[IsPK = 'true'][position()>1]">, <xsl:value-of select="VarName"/></xsl:for-each>); } </xsl:if> <xsl:if test="TabelModel/HasLogicKey = 'true'"> /// <summary> /// 编辑(根据逻辑主键) /// </summary> /// <param name="model">数据实体</param> /// <returns></returns> public int Update<xsl:value-of select="TabelModel/ModelName"/>WithLogicKey(<xsl:value-of select="TabelModel/ModelName"/>Model model) { return DAL.Update<xsl:value-of select="TabelModel/ModelName"/>WithLogicKey(model); }
/// <summary> /// 删除数据实体(根据逻辑主键) /// </summary> /// <param name="model">数据实体</param> /// <returns></returns> public int Delete<xsl:value-of select="TabelModel/ModelName"/>WithLogicKey(<xsl:value-of select="TabelModel/ModelName"/>Model model) { return DAL.Delete<xsl:value-of select="TabelModel/ModelName"/>WithLogicKey(model); }
/// <summary> /// 根据逻辑主键删除 /// </summary> <xsl:for-each select="TabelModel/Fields/FieldModel[IsLogicKey = 'true']"> /// <param> <xsl:attribute name="name"> <xsl:value-of select="VarName"/> </xsl:attribute> <xsl:value-of select="VarName"/> </param> </xsl:for-each> /// <returns></returns> public int DeleteWithLogicKey(<xsl:value-of select="TabelModel/Fields/FieldModel[IsLogicKey = 'true'][1]/VarType"/><xsl:text> </xsl:text><xsl:value-of select="TabelModel/Fields/FieldModel[IsLogicKey = 'true'][1]/VarName"/><xsl:for-each select="TabelModel/Fields/FieldModel[IsLogicKey = 'true'][position()>1]">, <xsl:value-of select="VarType"/><xsl:text> </xsl:text><xsl:value-of select="VarName"/></xsl:for-each>) { return DAL.DeleteWithLogicKey(<xsl:value-of select="TabelModel/Fields/FieldModel[IsLogicKey = 'true'][1]/VarName"/><xsl:for-each select="TabelModel/Fields/FieldModel[IsLogicKey = 'true'][position()>1]">, <xsl:value-of select="VarName"/></xsl:for-each>); } </xsl:if> /// <summary> /// 根据条件删除 /// </summary> /// <param name="strWhere">条件</param> /// <returns>删除条数</returns> public int DeleteByParam(string strWhere) { return DAL.DeleteByParam(strWhere); } #endregion </xsl:if> } } </xsl:template> </xsl:stylesheet>
相关文章推荐
- [C#]一步一步开发自己的自动代码生成工具之一:获取SQL2005的数据库表结构
- [C#]一步一步开发自己的自动代码生成工具之二:SQLServer字段与C#变量的对应转化
- [c#]一步一步开发自己的自动代码生成工具之一:获取sql2005的数据库表结构
- [C#]一步一步开发自己的自动代码生成工具之三:代码生成引擎
- [C#]一步一步开发自己的自动代码生成工具之四:简单三层代码模板实例Model层
- [C#]一步一步开发自己的自动代码生成工具之五:DAL层模板
- STM32代码自动生成工具,三步搞定一个智能硬件APP开发
- 利用 C# 开发工具自动完成创建一些基本的代码
- C# 代码结构自动化生成文档工具开发
- 分享一个自己开发的数据字典与动态代码生成工具
- 自动生成导出前端页面的快速开发工具,让代码开发变得简单
- 自己写的一个代码自动生成工具_java版_源码下载
- 用Pytohn写了一个根据表结构自动生成C#对像代码的小工具
- 开源!开源!我写的Anto.exe C#代码自动生成工具.欢迎下载。。
- Nhibernate开发代码工具,自动生成实体类、NHibernate的HBM映射文件和数据访问层的代码
- 七个CSS3代码自动生成工具让你提升前端开发速度
- C#软件开发实例.私人订制自己的屏幕截图工具——放大镜的功能代码优化
- 代码自动生成工具(二)-miniproto的c#库实现
- android mvp快速开发框架介绍(自动生成android代码工具介绍)
- 没头没尾--项目开发笔记:异常处理与日志记录代码自动生成(工具能生成多少代码!?续一)