t4 (text template transformation toolkit
) 是乙個基於模板的**生成器。使用
t4你可以通過寫一些
asp.net-like
模板,來生成
c#, t-sql, xml
等**。一「
hello world
」**生成器
1 建立乙個
c# console
工程,新增乙個名為「
helloworld.tt」
的文字檔案。
如果你正在使用
visual studio 2005
你需要安裝
dsl tools
。
2 向helloworld.tt中新增以下內容
template
language
="c#
" #>
// // this code was generated by a tool. any changes made manually will be lost
// the next time this code is regenerated.
// using
system;
public
class
this
.classname #>
}上面的模板將生成乙個名為「helloworld」的類,當你儲存helloworld.tt時,visual studio將為你生成以下**:
code
////
this code was generated by a tool. any changes made manually will be lost
//the next time this code is regenerated.
//using
system;
public
class
helloworld
}3 新增另乙個文字檔案helloworld1.tt.,加入以下內容:
this
.classname =
"helloworld1"
;#>
include
file
="hellot4.tt
" #>
通過修改classname的值可以更改類名,以上模板將生成乙個名為helloworld1類。
code
////
this code was generated by a tool. any changes made manually will be lost
//the next time this code is regenerated.
//using
system;
public
class
helloworld1
}二 資料庫自動生成實體類
這個例項會建立乙個模板為資料庫中的每一張表,自動建立相應的實體類。
1 首先我們需要新增一些程式集引用,命名空間。
template
language
="c#
" debug
="true
" hostspecific
="true
" #>
output
extension
=".cs
" #>
assembly
name
="system.data
" #>
assembly
name
="system.xml
" #>
import
namespace
="system.collections.generic
" #>
import
namespace
="system.data.sqlclient
" #>
import
namespace
="system.data
" #>
2 獲取資料庫表結構
. string
connectionstring =
"data source=.""sqlexpress;integrated security=sspi;initial catalog=miaportal;"
; sqlconnection conn =
newsqlconnection(connectionstring);
conn.open();
system.data.datatable schema = conn.getschema(
"tables"
); string
selectquery =
"select * from @tablename"
; sqlcommand command =
newsqlcommand(selectquery,conn);
sqldataadapter ad =
newsqldataadapter(command);
system.data.dataset ds =
newdataset();
我們通過getschema("tables")獲取了資料庫中所有表的表名,接著通過表名,獲取相應表的表結構。
3 生成**
template
language
="c#
" debug
="true
" hostspecific
="true
" #>
output
extension
=".cs
" #>
assembly
name
="system.data
" #>
assembly
name
="system.xml
" #>
import
namespace
="system.collections.generic
" #>
import
namespace
="system.data.sqlclient
" #>
import
namespace
="system.data
" #>
using
system;
namespace
myproject.entities
set}
}
} #>
}引用:
code generation using t4 templates ---
使用T4模板為EF框架新增資料庫實體注釋
新建getsummery.ttinclude assembly name system.core assembly name system.data import namespace system.data.sqlclient string constr data source 127.0.0.1 ...
C 根據資料庫自動生成實體類(工具二)
獲取所有的資料庫名 private static string getalldatasql select name from master.dbo.sysdatabases order by name 獲取所有的表名 private static string getalltablesql sele...
實體類自動賦值並解析為json資料
在前後端分離的框架中,當我們開發後台介面儲存資料時,需要組裝json資料來做測試。在準備測試資料時,需要將物件的屬性乙個個複製出來並賦值,太麻煩!於是乎,我做了個將實體類自動賦值並解析為json資料。如下 public class genjsontest public static void mai...