T4模板demo
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文件类已经生成好了实体类了。
T4模板demo的更多相关文章
- 初学T4模板
		
1.T4模板语法 <#@ template language="C#v3.5" hostSpecific="true" debug="true& ...
 - CSharpGL(12)用T4模板生成CSSL及其renderer代码
		
CSharpGL(12)用T4模板生成CSSL及其renderer代码 2016-08-13 由于CSharpGL一直在更新,现在这个教程已经不适用最新的代码了.CSharpGL源码中包含10多个独立 ...
 - MVC实用架构设计(三)——EF-Code First(3):使用T4模板生成相似代码
		
前言 经过前面EF的<第一篇>与<第二篇>,我们的数据层功能已经较为完善了,但有不少代码相似度较高,比如负责实体映射的 EntityConfiguration,负责仓储操作的I ...
 - T4 模板自动生成带注释的实体类文件 - 只需要一个 SqlSugar.dll
		
生成实体就是这么简单,只要建一个T4文件和 文件夹里面放一个DLL. 使用T4模板教程 步骤1 创建T4模板 ,一定要自已新建,把T4代码复制进去,好多人因为用我现成的T4报错(原因不明) 点击添加文 ...
 - SqlSugar框架T4模板的使用
		
一.T4模板说明 1.T4模板是用来生成Model层实体类的 2.文件后缀为.tt 3.需要修改配置主要有:引用的SqlSugar.dll的位置.生成实体类的位置及生成实体类的命名空间 4.T4模板生 ...
 - 懒人神器之T4模板
		
最近遇到一个比较令人烦躁的问题,特别是对于我等懒癌末期者.实在难以忍受!具体问题是这样,这个项目是一个新的项目.使用EF框架来开发,那么在搭建架构时,当我们新加一个Entity时,就需要在每个层级添加 ...
 - T4 模板自动生成带注释的实体类文件
		
T4 模板自动生成带注释的实体类文件 - 只需要一个 SqlSugar.dll 生成实体就是这么简单,只要建一个T4文件和 文件夹里面放一个DLL. 使用T4模板教程 步骤1 创建T4模板 如果你没有 ...
 - ASP.NET MVC+EF框架+EasyUI实现权限管理系列(12)-实现用户异步登录和T4模板
		
原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(12)-实现用户异步登录和T4模板 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇) (1):框架搭建 ...
 - T4模板使用
		
本例使用的数据库是Northwind 1.新建tt文本模板customer.tt 2. 修改customer.tt内容为 <#@ template debug="false" ...
 
随机推荐
- Linux学习笔记——举例说,makefile 添加宏定义
			
0.前言 从学习C语言開始就慢慢開始接触makefile,查阅了非常多的makefile的资料但总感觉没有真正掌握makefile.假设自己动手写一个makefile总认为非常吃力. 所以特意 ...
 - ASPxComboBox控件联动效果bug改进
			
原文:ASPxComboBox控件联动效果bug改进 在应用第三方控件DevExpress控件的时候,大家应该对ASPxComboBox控件应该不是很陌生吧,尤其在做多级联动效果的时候,有着它独特的地 ...
 - ENode框架Conference案例转载
			
ENode框架Conference案例分析系列之 - Quick Start 前言 前一篇文章介绍了Conference案例的架构设计,本篇文章开始介绍Conference案例的代码实现.由于代码比较 ...
 - Oracle 用户权限管理方法
			
Oracle 用户权限管理方法 sys;//系统管理员,拥有最高权限 system;//本地管理员,次高权限 scott;//普通用户,密码默认为tiger,默认未解锁 sys;//系统管理员,拥有最 ...
 - oracle修改表空间
			
1.其中表中查找该表空间不正确 select * from dba_tables where tablespace_name='TDB'; 2.将表空间在 TDB 中的移到表空间 TDB2009 中 ...
 - typeof + instanceof+toString+constructor什么推理javascript数据类型
			
一个.typeof JS这些变量是弱类型(这是弱类型)的,它可以不管用来存储数据的类型的. typeof 数据类型可用于检测给定的变量.可能的返回值: 1. 'undefined' --- 这个值没有 ...
 - IntelliJIDEA Getting+Started+with+Spring+MVC,+Hibernate+and+JSON
			
https://confluence.jetbrains.com/display/IntelliJIDEA/Getting+Started+with+Spring+MVC,+Hibernate+and ...
 - 数据库数据导出成XML文件
			
在数据库中,怎样把库中的数据导出XML文件, sql语句如下: SELECT * FROM 表名 FOR XML AUTO, ELEMENTS
 - PHP的MySQL扩张:MySQL数据库概述
			
资源:http://www.ido321.com/1023.html 一.SQL:结构化查询语言 SQL(Structured Query Language)是高级的非过程化变成语言.专门用于查询和改 ...
 - Oracle性能分析11:系统统计信息
			
早期Oracle查询优化器的开销计算是基于运行SQL语句所须要的物理读,这种方法被叫做I/O开销模式(I/O cost model),这种方法的主要缺点是觉得单块读和多块读开销相当.在Oracle 8 ...