• 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文件类已经生成好了实体类了。

  • 相关阅读:
    poj2253 青蛙
    这代码真是好,真是文艺,转来的
    java.text.MessageFormat
    java多线程的两种实现方式
    javascript with
    面向接口编程
    java 多线程 读写锁
    java 多线程 资源共享
    UML:继承、实现、依赖、关联、聚合、组合
    javascript 语言精粹 学习笔记
  • 原文地址:https://www.cnblogs.com/ashleyboy/p/3721995.html
Copyright © 2020-2023  润新知