现在的位置: 首页 > 综合 > 正文

[C#]一步一步开发自己的自动代码生成工具之六:业务层模板

2013年09月18日 ⁄ 综合 ⁄ 共 12731字 ⁄ 字号 评论关闭

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">&lt;</xsl:text><xsl:value-of select="TabelModel/ModelName"/>Model<xsl:text disable-output-escaping="yes">&gt;</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">&lt;</xsl:text><xsl:value-of select="TabelModel/ModelName"/>Model<xsl:text disable-output-escaping="yes">&gt;</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>

抱歉!评论已关闭.