一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

創(chuàng)建代碼生成器可以很簡單:如何通過T4模板生成代碼?[上篇]

  在《基于T4的代碼生成方式》中,我對T4模板的組成結(jié)構(gòu)、語法,以及T4引擎的工作原理進(jìn)行了大體的介紹,并且編寫了一個T4模板實現(xiàn)了如何將一個XML轉(zhuǎn)變成C#代碼。為了讓由此需求的讀者對T4有更深的了解,我們通過T4來做一些更加實際的事情——SQL Generator。在這里,我們可以通過SQL Generator為某個數(shù)據(jù)表自動生成進(jìn)行插入、修改和刪除的存儲過程。[文中源代碼從這里下載]

  一、代碼生成器的最終使用效果

  我們首先來看看通過直接適用我們基于T4的SQL生成模板達(dá)到的效果。右圖(點擊看大圖)是VS2010的Solution Explorer,在Script目錄下面,我定義了三個后綴名為.tt的T4模板。它們實際上是基于同一個數(shù)據(jù)表(T_PRODUCT)的三個存儲過程的生成創(chuàng)建的模板文件,其中P_PRODUCT_D.tt、P_PRODUCT_I.tt和P_PRODUCT_D.tt分別用于記錄的刪除、插入和修改。自動生成的擴(kuò)展名為.sql的同名附屬文件就是相應(yīng)的存儲過程。

  基于三種不同的數(shù)據(jù)操作(Insert、Update和Delete),我創(chuàng)建了3個重用的、與具體數(shù)據(jù)表無關(guān)的模板: InsertProcedureTemplate、UpdateProcedureTemplate和DeleteProcedureTemplate。這樣做的目的為為了實現(xiàn)最大的重用,如果我們需要為某個數(shù)據(jù)表創(chuàng)建相應(yīng)的存儲過程的時候,我們可以直接使用它們傳入相應(yīng)的數(shù)據(jù)表名就可以了。實際上,P_PRODUCT_D.tt、P_PRODUCT_I.tt和P_PRODUCT_D.tt這三個T4模板的結(jié)構(gòu)很簡單,它們通過<#@include>指令將定義著相應(yīng)ProcedureTemplate的T4模板文件包含進(jìn)來。最終的存儲過程腳本通過調(diào)用ProcudureTempalte的Render方法生成。其中構(gòu)造函數(shù)的參數(shù)表示的分別是連接字符串名稱(在配置文件中定義)和數(shù)據(jù)表的名稱。

<#@ template language="C#" hostspecific="True" #>
<#@ output extension="sql" #>
<#@ include file="T4Toolbox.tt" #>
<#@ include file="../Templates/DeleteProcedureTemplate.tt" #>
<#
    new DeleteProcedureTemplate("TestDb","T_PRODUCT").Render();
#>

NET技術(shù)創(chuàng)建代碼生成器可以很簡單:如何通過T4模板生成代碼?[上篇],轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 国产午夜在线视频 | 精品国产免费观看 | 日本在线视频www色 日本在线视频免费观看 | 91在线一区二区三区 | 亚洲首页 | 韩国福利影视一区二区三区 | 成人免费动作大片黄在线 | 久久怡红院国产精品 | 国产精品久久久久影视不卡 | 国产最新精品视频 | 久久久久国产 | 免费国产一级特黄久久 | 五月婷婷亚洲综合 | 亚洲网站视频 | 99国产福利 | 国产在线91| 91短视频在线播放 | 五月开心六月伊人色婷婷 | 国产精品揄拍一区二区 | 国产一区二区三区久久精品 | 一区二区手机视频 | 午夜免费在线观看 | 国产美女视频免费 | 色综色天天综合网 | 激情图片在线 | 色妞精品一区二区 | 亚洲区一二三四区2021 | 亚洲精品图区 | 国产网红自拍 | 91中文字幕在线播放 | 美女黄网站免费观看 | 中文字幕99在线精品视频免费看 | 99在线精品免费视频九九视 | 麻豆亚洲一区 | 久久五月天婷婷 | 综合 91在线精品 | 人人干在线观看 | 麻豆出品| 成人免费黄色网址 | 2021国产精品最新在线 | 国产精选在线 |