• CodeSmith小尝试


    今天看到传智播客Asp.Net高手之路视频教程,发现里面有空CodeSmith能够批量辅助生成有关数据库的代码,于是也写了一下,效果还不错。

    1.先来个将数据库中的表批量生成类的代码。

    <%-- 
    Name:
    Author:WLin 
    Description: 
    --%>
    <%@ CodeTemplate Language="C#" TargetLanguage="c#" LinePragmas="True" ResponseEncoding="utf-8"%>
    <%@ Assembly Name="SchemaExplorer" %>
    <%@ Import Namespace="SchemaExplorer" %>
    <%@ Assembly Name="System.Data"%>
    <%@ Import Namespace="System.Data" %>
    <%@ Property Name="NameSpaceName" Type="String" Default="WlModel" Description="命名空间名"%>
    <%@ Property Name="ClassName" Type="String" Default="WlClass" Description="类名"%>
    <%@ Property Name="TableName" Type="SchemaExplorer.TableSchema" Description="从SchemaExplorer配置好的数据库表中选取具体的表名" Category="Context"%>
    
    using System;
    
    namespace <%=NameSpaceName%>
    {
    public class <%=ClassName%>
    {
    <% foreach(ColumnSchema cs in TableName.Columns){%>
     private <%=cs.SystemType%>  _<%=cs.Name%>;
    <%}%>
    <% foreach(ColumnSchema cs in TableName.Columns){%>
    public <%=cs.SystemType%> <%=cs.Name%>
    {
      get{return _<%=cs.Name%>;}
      set{_<%=cs.Name%>=value;}
    }
    <%}%>
    }
    }

    2.再来个将数据库中的每一行数据装载到表对用的类对象中。

    <%-- 
    Name:
    Author:WLin 
    Description: 
    --%>
    <%@ CodeTemplate Language="C#" TargetLanguage="c#" LinePragmas="True" ResponseEncoding="utf-8"%>
    <%@ Assembly Name="SchemaExplorer" %>
    <%@ Import Namespace="SchemaExplorer" %>
    <%@ Assembly Name="System.Data"%>
    <%@ Import Namespace="System.Data" %>
    <%@ Property Name="NameSpaceName" Type="String" Default="WlDal" Description="命名空间名"%>
    <%@ Property Name="ClassName" Type="String" Default="WlClass" Description="类名"%>
    <%@ Property Name="TableName" Type="SchemaExplorer.TableSchema" Description="从SchemaExplorer配置好的数据库表中选取具体的表名" Category="Context"%>
    <%@ Property Name="AliasNameSpaceName" Type="String" Default="WlModel" Description="另外命名空间名"%>
    
    using System;
    using System.Data;
    
    namespace <%=NameSpaceName%>
    {
    public class <%=ClassName%>
    {
     private void loadEntiryData(<%=AliasNameSpaceName%>.<%=ClassName%> p<%=ClassName%>,DataRow pRow)
    {
     <% foreach(ColumnSchema cs in TableName.Columns){%>
         if(pRow["<%=cs.Name%>"]!=DBNull.Value)
         {
             p<%=ClassName%>.<%=cs.Name%> = (<%=cs.SystemType%>)pRow["<%=cs.Name%>"];
         }
     <%}%>
    }
    }
    }

     

    高调做事,低调做人~!
  • 相关阅读:
    Pycharm中运行Python代码的几种方式
    Git同步Python代码
    抓包工具Charles的使用
    jmeter进行的接口测试和压力测试
    并发的HTTP请求,apache是如何响应的,以及如何调用php文件的
    http 请求头部解析
    display_errors","On");和error_reporting 区别和联系
    http
    curl
    正则 惰性和非惰性匹配
  • 原文地址:https://www.cnblogs.com/514687800/p/3447776.html
Copyright © 2020-2023  润新知