天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

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

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

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

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

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

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

NET技術創建代碼生成器可以很簡單:如何通過T4模板生成代碼?[上篇],轉載需保留來源!

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

主站蜘蛛池模板: 国产精品免费一区二区三区视频 | 伊人久久99热这里只有精品 | 亚洲一卡二卡三卡四卡无卡麻豆 | 全黄h全肉细节全文 | 无码人妻丰满熟妇区五十路久久 | 糙汉顶弄抽插HHHH | 人妻夜夜爽天天爽三区麻豆AV网站 | 超碰免费视频公开97 | 色欲AV精品一区二区入口 | 天堂tv免费tv在线tv香蕉 | 国产盗摄一区二区三区 | 亚洲 日本 中文字幕 制服 | 黄色直接观看 | 久久精选视频 | 国产精品嫩草影院一区二区三区 | 麻豆精品人妻一区二区三区蜜桃 | 精品午夜久久福利大片免费 | 欧美做真爱欧免费看 | 芭乐视频网页版在线观看 | 黑人寄宿羽月希产后奶水 | 蜜柚影院在线观看免费高清中文 | 北条麻妃のレズナンパ | 2021国产精品一卡2卡三卡4卡 | 久久久久国产 | 无颜之月全集免费观看 | 秘密教学93话恩爱久等了免费 | 国产精品视频人人做人人爽 | 全黄H全肉细节文短篇 | 亚洲男人97色综合久久久 | 共妻肉多荤文高h一女n男 | 无码人妻精品一区二区蜜桃色 | 久久re这里视频精品15 | 新版孕妇bbwbbwbbw | 久久机热视频 这里只有精品首页 | 666永久视频在线 | 亚洲精品无码成人AAA片 | 牛牛自拍国产免费视频 | 亚洲男人在线观看 | 欧美黑人巨大性极品hd欧 | 男女又黄又刺激B片免费网站 | 欧美精品AV精品一区视频 |