SqlSugar框架T4模板的使用

2021-09-07 07:38:18 字數 3724 閱讀 6649

一、t4模板說明

1.t4模板是用來生成model層實體類的

2.檔案字尾為.tt

3.需要修改配置主要有:引用的sqlsugar.dll的位置、生成實體類的位置及生成實體類的命名空間

4.t4模板生成**對資料庫有要求,資料庫應該是不區分大小寫的,如果你建立的資料庫是否區分大小寫的「chinese_prc_cs_as 」,

5.t4模板生成**,中包括建立的檢視

那麼會丟擲異常 'sysojbects'物件無效,關於修改資料庫是否區分大小寫可以參考:

二、t4模板使用步驟

1.建立專案後,引用sqlsugar.dll

2.新增t4模板:右鍵專案,選擇【執行時文字模板】,字尾為.tt

還可以,將原demo中的模板,直接copy到本專案中

原demo中的檔案內容為:

<

#@ template

debug

="false"

hostspecific

="true"

language

="c#"

#>

<

#@ import

namespace

="system.collections.generic"

#>

<

#@ assembly

name

="system.core"

#>

<

#@ assembly

name

="system.xml"

#>

<

#@ assembly

name

="system.xml.linq"

#>

<

#@ assembly

name

="system.data"

#>

<

#@ import

namespace

="system.linq"

#>

<

#@ import

namespace

="system.text"

#>

<

#@ import

namespace

="system.collections.generic"

#>

<

#@ import

namespace

="sqlsugar"

#>

<

#@ import

namespace

="system.io"

#>

<

#@ import

namespace

="system.web"

#>

<

#@ assembly

name

#>

<

#

//當前專案目錄

string

projectdir

= host.resolveassemblyreference("$(projectdir)");

//解決方案目錄

string solutiondir

= host.resolveassemblyreference("$(solutiondir)");

using (var db

= new

sqlsugarclient("server

=.;initial

catalog

=sqlsugartest;persist

security info

=true;user

id=sa;password=sasa"))

;#>

view code

3.修改t4模板內容:

修改完資料庫連線字串,生成路徑,命名空間後,快捷鍵ctrl+s如果成功的情況下,會自動生成model層到指定記錄。

4.如果需要修改model層類檔案的生成內容,可以直接修改源**的模板,也可以使用**的方式來生成model層,請往下看。

三、使用**生成 model層

//

t4 模板**執行

using (var db = new sqlsugarclient("

server=.;initial catalog=sysstudent;persist security info=true;user id=sa;password=123"))

);

//根據表名生成class字串

var str = db.classgenerating.tablenametoclass(db, "

student");

var dynamictoclassstr = db.classgenerating.dynamictoclass(new , "

dyname");

//根據sql語句生成class字串

//var str2 = db.classgenerating.sqltoclass(db, "select top 1 * from student", "student");

//改變值(lasstemplate.itemtemplate=***x)可以自定義格式

var tempitem = classtemplate.itemtemplate;//

例如可以在生成的實體新增預設建構函式給指定的字段賦預設值或者公司資訊等

var temp =classtemplate.template;

//設定新格式模板

//主鍵guid.new(),

//createtime為datetime.now

//isremove=0

//updatetime為datetime.now

classtemplate.template = "

using system;\r\nusing system.linq;\r\nusing system.text;\r\n\r\nnamespace $namespace\r\n\r\n $foreach\r\n }\r\n}\r\n";

//新格式的實體字串

var str3 = db.classgenerating.tablenametoclass(db, "

student");

}

使用**生成model層,有個好處,如果t4模板在生成**的過成功丟擲異常,可以除錯檢視。

var tempitem=classtemplate.itemtemplate;  類的模版

var temp=classtemplate.template ; 字段模版

classtemplate.classfieldsummarytemplate 字段摘要模版

更多:.net開源sqlserver orm框架sqlsugar整理

T4模板語法

t4,即4個t開頭的英文本母組合 text template transformation toolkit。t4文字模板,即一種自定義規則的 生成器。根據業務模型可生成任何形式的文字檔案或供程式呼叫的字串。模型以適合於應用程式域的形式包含資訊,並且可以在應用程式的生存期更改 template deb...

T4模板 入門

t4模板作為vs自帶的一套 生成器,功能有多強大我也不知道,最近查詢了一些資料學習一下,做個筆記 更詳細的資料參見 msdn 你必須懂的t4模板 深入淺出 t4模板是沒有顏色高亮提示的,我們可以安裝vs支援的外掛程式,我安裝的是 t4 editor,當然還有其他比如 visual t4等,t4模板分...

T4模板的基本用法

1 language c 代表要輸出的是c 的檔案 template debug false hostspecific false language c assembly name system.core import namespace system.linq import namespace s...