没有合适的资源?快使用搜索试试~ 我知道了~
VisualStudio下的代码生成-T4模板使用说明.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 88 浏览量
2021-11-23
12:49:14
上传
评论
收藏 302KB PDF 举报
温馨提示
试读
16页
VisualStudio下的代码生成-T4模板使用说明.pdf
资源推荐
资源详情
资源评论
Visual Studio 下的代码生成: 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();
#>
<#@ template language="C#" hostspecific="True" # >
<#@ output extension="sql" # >
<#@ include file="T4Toolbox.tt" # >
<#@ include file="..\Templates\InsertProcedureTemplate.tt" # >
<#
new InsertProcedureTemplate("TestDb","T_PRODUCT").Render();
#>
<#@ template language="C#" hostspecific="True" # >
<#@ output extension="sql" # >
<#@ include file="T4Toolbox.tt" # >
<#@ include file="..\Templates\UpdateProcedureTemplate.tt" # >
<#
new UpdateProcedureTemplate("TestDb","T_PRODUCT").Render();
#>
二、安装 T4 工具箱( ToolBox )和编辑器
VS本身只提供一套基于 T4 引擎的代码生成的执行环境, 为了利于你的编程你可以安装一些辅助性的东
西。T4 ToolBox 是一个 CodePlex 上开源的工具, 它包含一些可以直接使用的代码生成器, 比如 Enum SQL View、
AzMan wrapper 、LINQ to SQL classes 、LINQ to SQL schema 和 Entity Framework DAL 等。 T4 ToolBox
还提供一些基于 T4 方面的 VS的扩展。当你按照之后,在“ Add New Item”对话框中就会多出一个命名为
“Code Generation ”的类别,其中包括若干文件模板。下面提供的 T4 模板的编辑工作依赖于这个工具。
为了提高编程体验,比如智
能感知以及代码配色,我们还可以安装一些第三方的 T4 编辑器。我使用的是一个叫做 Oleg Sych 的 T4
Editor 。它具有免费版本和需要付费的专业版本, 当然我使用的免费的那款。 成功按装了, 它也会在 Add New
Item ”对话框中提供相应的基于 T4 的文件模板。
三、创建数据表
T4 模板就是输入和输出的一个适配器, 这与 XSLT的作用比较类似。 对于我们将要实现的 SQL Generator
来说,输入的是数据表的结构( Schema)输出的是最终生成的存储过程的 SQL脚本。对于数据表的定义,
不同的项目具有不同标准。 我采用的是我们自己的数据库标准定义的数据表: T_PRODUCT(表示产品信息) ,
下面是创建表的脚本。
CREATETABLE [dbo].[T_PRODUCT](
[ID] [ VARCHAR](50) NOTNULL,
[NAME] [NVARCHAR] NOTNULL,
[PRICE] [ float ] NOTNULL,
[TOTAL_PRICE] [ FLOAT] NOTNULL,
[ DESC] [NVARCHAR] NULL,
[CREATED_BY] [ VARCHAR](50) NULL,
[CREATED_ON] [DATETIME] NULL,
[LAST_UPDATED_BY] [ VARCHAR](50) NULL,
[LAST_UPDATED_ON] [DATETIME] NULL,
[VERSION_NO] [ TIMESTAMP] NULL,
[TRANSACTION_ID] [ VARCHAR](50) NULL,
CONSTRAINT [PK_T_PRODUCT] PRIMARYKEY CLUSTERED( [ID] ASC) ON [ PRIMARY])
剩余15页未读,继续阅读
资源评论
MMARCHH
- 粉丝: 0
- 资源: 6万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功