企业官方网站认证,妹子ui wordpress,虚拟主机建立网站,搜索引擎 网站推广一、废话 T4(Text Template Transformation Toolkit)是微软官方在VisualStudio 2008中开始使用的代码生成引擎。在 Visual Studio 中#xff0c;“T4 文本模板”是由一些文本块和控制逻辑组成的混合模板#xff0c;它可以生成文本文件。 在 Visual C# 或 Visual Basic 中“T4 文本模板”是由一些文本块和控制逻辑组成的混合模板它可以生成文本文件。 在 Visual C# 或 Visual Basic 中控制逻辑编写为程序代码的片段。生成的文件可以是任何类型的文本例如网页、资源文件或任何语言的程序源代码。现在的VS中只要与代码生成相关的场景基本上都能找T4的身影比如MVC的视图模板Entity Framwork的DataContext模板等等。 二、说明 1、文本是基于Visual Studio 2013 vs插件Devart T4 Editor 讲述的为什么不用Visual Studio 2015目前Devart T4 Editor不支持vs2015有点蛋疼。哪个高手懂得VS插件的制作帮忙升级下 Devart T4 Editor 呗。 2、这应该真心是一篇For菜菜鸟的文章但凡有经验的就略过吧 三、视觉优先 1、新建一个控制台应用程序Zeje.T4 2、在项目中“添加”-”新建项”弹出“添加新项”对话框在右上角的搜索框输入“模板”分别针对这四种模板创建新项。 3、文件创建后解决方案资源管理器的列表展示如下。 4、各种疑问 4.1、EF 5.x DbContext生成器是啥 4.2、EF 6.x DbContext生成器是啥 4.3、文本模板是啥 4.4、运行时文本模板是啥 四、解惑 1、返璞归真 不管是什么都是文件要么是“文件”要么是“文件组” 都有后缀为.tt的文件 后缀为.tt的文件我们统称其为“T4模板文件” 2、各个击破 2.1 、EF 5.x DbContext生成器 点击添加后生成的是两个后缀为.tt的文件 刚才命名是“EF5”那么它就是帮我们产生两个叫“XX.Context.tt”和“XX.tt”的文件。 打开EF5.Context.tt和EF5.tt文件都是TMD的一堆代码真心看不懂有木有那就PASS吧 2.2、EF 6.x DbContext生成器 TMD呀跟2.1说的完全一样还是TMD的一堆代码。不过细心的会发现文件里的内容会有所不同。是PASS吗不展开看看 文件EF6.Context.cs和EF6.cs里面基本上没有内容回去看看EF5.Context.cs和EF5.cs文件基本上一样也是没有内容PASS吧 2.3、文本模板 打开TextTemplate_.tt眼前一亮的有木有这是多大的差距呀 这TextTemplate_.tt文件中的内容就是这般简单TextTemplate_.txt文件里什么内容都木有。 为什么有的.tt文件下面展开的是XXX.cs文件而又得却是XXX.txt文件呢回头仔细研究下原来是这段代码如下图在作怪 2.4、运行时文本文件 分别打开RuntimeTextTemplate_.tt和RuntimeTextTemplate_.cs的文件是否又如上面的一样.tt文件一堆代码而展开后的文件基本没内容好吧原以为自己找到规律了却发现自己太天真了.tt文件内容很少.cs文件的内容又是一堆 五、雪上加霜 为什么雪上加霜呢因为下面的也跟T4模板扯上点关系 0、新建项目“Zeje.EF_”项目类型为类库.net framework版本为4.5 1、在项目中“添加”-”新建项”弹出“添加新项”对话框在右上角的搜索框输入“模型”创建ADO.NET实体数据模型“Zeje.Hr” 2、点击添加发现了一个选择题到底选哪个 来自数据库的EF设计器 空EF设计器模型 空Code First模型 来自数据库的Code First 好吧就让暴风雨来得更猛烈些吧咱们四个都创建分别命名对比下具体新建过程就不列出来占用篇幅了 来自数据库的EF设计器命名 DBFirst数据库基于自己本地的[Zeje.Hr]数据库 空EF设计器模型命名 DBFirst_ 空Code First模型命名 CodeFirst_ 来自数据库的Code First命名 CodeFirst数据库基于自己本地的[Zeje.Hr]数据库【把相关放在CodeFirst文件夹中】 好吧不敢跟我耍狠了只有第一种才跟T4模板扯上关系。再把图片引用下相关T4模板文件已经用红色框圈住了解说下吧 DBFirst.edmx【本质上就是一个XML文件记录的是数据库映射出来的实体这实体包括表、视图、存储过程、约束等】 DBFirst.Context.tt 【T4模板展开后下面有一个DBFirst.Designer.cs文件】 DBFirst.Designer.cs【还真不知道现在起什么作用】 DBFirst.edmx.diagram【本质上就是一个XML文件记录的是edmx设计视图下实体的坐标】 DBFirst.tt【T4模板展开后下面还有多个.cs文件TMD这又跟上面的只有一个.cs或者一个.txt文件不同至于怎么整的后面一起研究】 对于这些个文件它们是一个文件组它们的布局取决于【Zeje.EF_.csproj】文件假如用记事本打开它的本质也一个XML文件通过一定的规则把上述文件组织在一起而已。在日常的操作中我们可能一不小心随便拖动下这些个文件中的某一个它的组合就乱了那个时候就只能通过手动调整.csproj文件重新按照既定规则组合起来。 转载于:https://www.cnblogs.com/zeje/p/5156339.html