• 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%>"];
         }
     <%}%>
    }
    }
    }

     

    高调做事,低调做人~!
  • 相关阅读:
    关于springboot项目使用yml类型的配置文件
    关于个人电脑连不上公司svn服务器,显示拒绝访问的错误
    改变思考问题的方式——SQL排序查询
    FreeMarker入门级
    个人电脑安装svn实录
    tomcat配置虚拟路径,可以解决实际开发中测试时前端访问后台电脑上的图片的问题
    springmvc的运行原理个人见解
    [CF915F] Imbalance Value of a Tree
    [CF768G] The Winds of Winter
    [BZOJ4241] 历史研究
  • 原文地址:https://www.cnblogs.com/514687800/p/3447776.html
Copyright © 2020-2023  润新知