真实项目中VS2015中自建T4模板生成文件的使用

有可能许多小伙伴们发现,vs2015和2012的自带T4模板中的.tt文件改变非常之多,如果仅仅copyEF系统自己生成的模板文件,那可累了。以下是我自己整理的在2012和2015中都可以试用的代码。

<#@ template language="C#" debug="false" hostspecific="true"#>
<#@ include file="EF.Utility.CS.ttinclude"#><#@
 output extension=".cs"#>

<#

CodeGenerationTools code = new CodeGenerationTools(this);
MetadataLoader loader = new MetadataLoader(this);
CodeRegion region = new CodeRegion(this, 1);
MetadataTools ef = new MetadataTools(this);
//修改当前tt模板相对应的edmx模型的位置
string inputFile = @"..\\Model\\DataModel.edmx";

EdmItemCollection ItemCollection = loader.CreateEdmItemCollection(inputFile);
string namespaceName = code.VsNamespaceSuggestion();

EntityFrameworkTemplateFileManager fileManager = EntityFrameworkTemplateFileManager.Create(this);

#>

using Model;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace IBLL
{

<#
foreach (EntityType entity in ItemCollection.GetItems<EntityType>().OrderBy(e => e.Name))
{
#>
        public partial interface I<#=entity.Name#>Service:IBaseService<<#=entity.Name#>>
    {
    }
<#}#>

}

注意:string inputFile = @"..\\Model\\DataModel.edmx";

这个是需要插入与当前项目对应的EF模型类的位置

foreach (EntityType entity in ItemCollection.GetItems<EntityType>().OrderBy(e => e.Name))这句很明显是取EF类中文件的语句

生成效果如下:注意原类需要添加partial标签



原文地址:https://www.cnblogs.com/wangyinhang/p/9952163.html

时间: 2024-10-11 16:21:41

真实项目中VS2015中自建T4模板生成文件的使用的相关文章

利用T4模板生成ASP.NET Core控制器的构造函数和参数

前言 在ASP.NET Core中引入了DI,并且通过构造函数注入参数,控制器中会大量使用DI注入各种的配置参数,如果配置注入的参数比较多,而且各个控制器需要的配置参数都基本一样的话,那么不断重复的复制黏贴代码提供相应的构造函数,效率低效也,因此使用T4模板生成控制器的构造函数 ,这也得益于C#对分部类(partial)的支持. T4模板生成控制器构造函数 图中CtrlTemplate.tt为模板文件,CtrlNames.txt为需要使用T4生成代码的控制器名称文件,CtrlTemplate.c

使用T4模板生成不同部署环境下的配置文件

在开发企业级应用的时候,通常会有不同的开发环境,比如有开发环境,测试环境,正式环境,生产环境等.在一份代码部署到不同环境的时候,不同环境的配置文件可能需要根据目标环境不同而不同.比如在开发环境中,数据库使用的是开发环境的数据库,消息队列也使用的部署在开发机上的消息队列,传统的方式是,由发布或者配置管理员来维护这些不同环境的配置文件.通常,手工的针对不同的环境去修改配置文件容易产生错误. 有很多种不同的方式来针对不同的部署环境生成配置,最笨的方法就是可以维护几套不同的配置文件,然后在编译事件中根据

[转]MVC实用架构设计(三)——EF-Code First(3):使用T4模板生成相似代码

本文转自:http://www.cnblogs.com/guomingfeng/p/mvc-ef-t4.html 〇.目录 一.前言 二.工具准备 三.T4代码生成预热 (一) 单文件生成:HelloWorld.cs (二) 多文件生成 四.生成数据层实体相关相似代码 (一) 生成准备 (二) 生成实体相关相似代码 生成实体映射配置类 生成实体仓储接口 生成实体仓储实现 五.源码获取 系列导航 一.前言 经过前面EF的<第一篇>与<第二篇>,我们的数据层功能已经较为完善了,但有不少

Visual Studio 2013 EF5实体数据模型 EDMX 使用 T4模板生成后使用 ObjectContext对象

Visual Studio 2013 EF5实体数据模型 EDMX 使用 T4模板生成后的继承对象为DbContext,以前的熟悉的ObjectContext对象不见了,当然使用ObjectContext对象不是每个程序员都需要的,解决办法有两种: 方法1.打开Model.Context.cs,添加 public OracleModelEntities(ObjectContext objectContext, bool dbContextOwnsObjectContext)           

t4模板生成 _references.js 文件

t4模板功能: 指定目录,自动生成 _references.js 文件 相关文件说明: _references.js 实现js智能提示. 注意事项: hostspecific="true" <#@ template debug="false" hostspecific="true" language="C#" #> projectDir=Host.ResolveAssemblyReference("$(P

使用T4模板生成代码的学习

之前做项目使用的都是Db First,直接在项目中添加Entity Framework,使用T4模板(T4模板引擎之基础入门)生成DAL BLL层等(T4模板是一个同事给的,也没有仔细研究,代码如下:) <#@ template language="C#" debug="false" hostspecific="true"#> <#@ include file="EF.Utility.CS.ttinclude"

[MVC学习笔记]2.使用T4模板生成其他类的具体实现

      在前篇中我们已经将User类中的代码做了具体的实现,但仍然有多个实体类未实现,以后可能还会增加新的数据表,数据表结构也有可能发生变化,所以我们使用T4模板来完成类的生成,这样就算数据库表发生了改变,也会自动根据改变后的实体对类进行重新生成. 下面是数据访问层的T4模板文件Dal.tt <#@ template language="C#" debug="false" hostspecific="true"#> <#@

C# Net MVC+SqlServer=T4模板生成实体类并操作数据(DbHelper+DBManage)

1.ConnectionString,数据库链接 Web.config <configuration> <connectionStrings> <!-- 数据库 SQL Server --> <add name="ConnectionString" connectionString="Data Source=**IP地址**;Initial Catalog=**数据库名**;User ID=**用户名**;Password=**密码*

T4模板在项目中的使用

建立T4模板方法:右键添加新项->文本模板 使用T4模板生成Dal层代码如下: <#@ template language="C#" debug="false" hostspecific="true"#> <#@ include file="EF.Utility.CS.ttinclude"#><#@ output extension=".cs"#> <# Co