zoukankan      html  css  js  c++  java
  • T4模板_根据DB生成实体类

       为了减少重复劳动,可以通过T4读取数据库表结构,生成实体类,用下面的实例测试了一下

    1.首先创建一个项目,并添加文本模板:

    2.添加 文本模板:

    3.向T4文本模板文件添加代码:

    <#@ template language="C#" debug="True" hostspecific="True" #>
    
    <#@ assembly name="System.Data" #> 
    
    <#@ assembly name="System.xml" #>
    
    <#@ import namespace="System.Collections.Generic" #>
    
    <#@ import namespace="System.Data.SqlClient" #>
    
    <#@ import namespace="System.Data" #>
    
    <#@ output extension=".cs" #>
    
     using System;
    
    namespace Test.T4
    
    {     
    
          <#
    
               string connectionString="data source=(local);initial catalog=musicstore;user id=sa;password=123456;";
    
               SqlConnection conn = new SqlConnection(connectionString);
    
               conn.Open();
    
               DataTable schema = conn.GetSchema("TABLES");
    
               string strSql = "select * from @tableName";
    
               SqlCommand command = new SqlCommand(strSql,conn);
    
               SqlDataAdapter ad = new SqlDataAdapter(command);
    
               DataSet ds = new DataSet();        
    
               foreach(DataRow row in schema.Rows)
    
               {  #>  
    
               public class <#= row["TABLE_NAME"].ToString().Trim() #>                   
    
               {    <#                     
    
                       ds.Tables.Clear();
    
                      command.CommandText = strSql.Replace("@tableName",row["TABLE_NAME"].ToString());
    
                      ad.FillSchema(ds, SchemaType.Mapped, row["TABLE_NAME"].ToString());         
                   
                      foreach (DataColumn dc in ds.Tables[0].Columns)
    
                      {    #>                    
                      public <#= dc.DataType.Name #> <#= dc.ColumnName #> { get; set; }
                  <# }  #>         
               }                  
    
               <# 
                      
               } #>                
               <# conn.Close(); #>
    }

    DataTable schema = conn.GetSchema("TABLES");获取数据库的表名,然后通过foreach语句逐个遍历,更具表名查询字段名,生成实体类。

    好了,保存一下,就可以看到DBToClass.cs文件类已经生成好了实体类了。

  • 相关阅读:
    Java EE 中由于版本所引发的问题
    XP系统启动电脑时进入读条时读一会就卡住不动,但用安全模式可以进入
    JVM terminated. Exit code=1
    MyEclipse中打war包,打jar包并在项目中导入jar包
    Error:could not open'C:\Porogram Files\Java\jrelib\j386\jvm.cfg'
    几种标签库中的一些特有使用
    Oracle基本语法
    Java生成Excel
    Java ME开发环境的配置
    Android webkit log定义
  • 原文地址:https://www.cnblogs.com/ashleyboy/p/3721995.html
Copyright © 2011-2022 走看看