t4b代码生成_Ef+T4模板实现代码快速生成器
效果如图,demo(点击demo可下载案例)
项目结构如图
T4BLL添加BLL.tt文件;
T4Model添加Model文件;
T4DAL添加DAL.tt文件;
T4DAL 添加ADO.NET Entity Data Model选择dababase first 模式;
打开Model1.edmx文件下的Model1.tt打开,复制内容替换了T4Model项目下Model.tt文件;
打开Model1.edmx文件下的Model.tt从{ 开始选择至 }
如下图
复制Model1.tt内容替换BLL.tt、DAL.tt内容,现在Model1.tt已经没有什么意义了,可以删除。
打开T4Model的T4模板,修改如下代码,修改完成后保存下就可以生成出Edmx中添加类的Model。
const string inputFile = @"Model1.edmx";
//更改为
string inputFile = Host.ResolveAssemblyReference("$(ProjectDir)").Replace("T4Model","T4DAL")+"/Model1.edmx";
打开T4DAL的T4模板
fileManager.StartNewFile(entity.Name + ".cs");
//更改为
fileManager.StartNewFile(entity.Name + "_DAL.cs");
//---分割线---
public string EntityClassOpening(EntityType entity)
{
return string.Format(
CultureInfo.InvariantCulture,
"{0} {1}partial class {2}{3}",
Accessibility.ForType(entity),
_code.SpaceAfter(_code.AbstractOption(entity)),
_code.Escape(entity),
_code.StringBefore(" : ", _typeMapper.GetTypeName(entity.BaseType)));
}
//更改为
public string EntityClassOpening(EntityType entity)
{
return string.Format(
CultureInfo.InvariantCulture,
"{0} {1}partial class {2}_DAL{3}",
Accessibility.ForType(entity),
_code.SpaceAfter(_code.AbstractOption(entity)),
_code.Escape(entity),
_code.StringBefore(" : ", _typeMapper.GetTypeName(entity.BaseType)));
}
//---分割线---更改为
foreach (var entity in typeMapper.GetItemsToGenerate(itemCollection))
{
fileManager.StartNewFile(entity.Name + "_DAL.cs");
BeginNamespace(code);
#>
using T4Model;
{
///
/// 新增
///
///
///
public Add( entity){
//内容实现
return null;
}
}
EndNamespace(code);
}
打开T4BLL的T4模板
const string inputFile = @"Model1.edmx";
//更改为
string inputFile = Host.ResolveAssemblyReference("$(ProjectDir)").Replace("T4BLL","T4DAL")+"/Model1.edmx";
//---分割线---
fileManager.StartNewFile(entity.Name + ".cs");
//更改为
fileManager.StartNewFile(entity.Name + "_BLL.cs");
//---分割线---
public string EntityClassOpening(EntityType entity)
{
return string.Format(
CultureInfo.InvariantCulture,
"{0} {1}partial class {2}{3}",
Accessibility.ForType(entity),
_code.SpaceAfter(_code.AbstractOption(entity)),
_code.Escape(entity),
_code.StringBefore(" : ", _typeMapper.GetTypeName(entity.BaseType)));
}
//更改为
public string EntityClassOpening(EntityType entity)
{
return string.Format(
CultureInfo.InvariantCulture,
"{0} {1}partial class {2}_BLL{3}",
Accessibility.ForType(entity),
_code.SpaceAfter(_code.AbstractOption(entity)),
_code.Escape(entity),
_code.StringBefore(" : ", _typeMapper.GetTypeName(entity.BaseType)));
}
//---分割线---更为
foreach (var entity in typeMapper.GetItemsToGenerate(itemCollection))
{
fileManager.StartNewFile(entity.Name + "_BLL.cs");
BeginNamespace(code);
#>
using T4DAL;
using T4Model;
{
_DAL dal = new _DAL();
///
/// 新增
///
///
///
public Add( entity){
return dal.Add(entity);
}
}
EndNamespace(code);
}
Host.ResolveAssemblyReference("$(ProjectDir)")是获取项目路径的方法,通过替换项目名称来寻找到edmx文件,从而实现T4模板分离在不同的类库中。
使用T4模板生成代码的学习
之前做项目使用的都是Db First,直接在项目中添加Entity Framework,使用T4模板(T4模板引擎之基础入门)生成DAL BLL层等(T4模板是一个同事给的,也没有仔细研究,代码如下: ...
T4模板生成代码。 数据实体层与数据仓储层。备注
文件生成模板:TempleteManager.ttinclude
通过T4模板实现代码自动生成
1:准备.tt模板 using BBFJ.OA.IBLL; using BBFJ.OA.IDAL; using BBFJ.OA.Model; using System; using System.Co ...
EF t4模板将实体与DBContext分离
在用EF DBFirst时,实体类是从数据库自动生成的,与DBContext放在同一个项目中.这样其他项目想引用实体,就会将数据库操作类暴露出来.所以,我们需要将实体分离. 新建项目EFAccess, ...
【转】- 使用T4模板批量生成代码
前言 之前在 “使用T4模板生成代码 - 初探” 文章简单的使用了T4模板的生成功能,但对于一个模板生成多个实例文件,如何实现这个方式呢?无意发现一个解决方案 “MultipleOutputHelpe ...
从零开始编写自己的C#框架(12)——T4模板在逻辑层中的应用(一)(附源码)
对于T4模板很多朋友都不太熟悉,它在项目开发中,会帮我们减轻很大的工作量,提升我们的开发效率,减少出错概率.所以学好T4模板的应用,对于开发人员来说是非常重要的. 园子里对于T4模板的介绍与资料已经太 ...
SqlSugar框架T4模板的使用
一.T4模板说明 1.T4模板是用来生成Model层实体类的 2.文件后缀为.tt 3.需要修改配置主要有:引用的SqlSugar.dll的位置.生成实体类的位置及生成实体类的命名空间 4.T4模板生 ...
解决T4模板的程序集引用的五种方案
在众多.NET应用下的代码生成方案中,比如CodeDOM,BuildProvider, 我觉得T4是最好的一种.关于T4的基本概念和模板结果,可以参考我的文章.如 ...
C# 通过T4自动生成代码
通过T4模板生成代码,运行时实现 关键代码段:Host using Microsoft.VisualStudio.TextTemplating; using System; using System. ...
随机推荐
HDU 2509 Nim博弈变形
1.HDU 2509 2.题意:n堆苹果,两个人轮流,每次从一堆中取连续的多个,至少取一个,最后取光者败. 3.总结:Nim博弈的变形,还是不知道怎么分析,,,,看了大牛的博客. 传送门 首先给出结 ...
iOS百度地图SDK集成详细步骤
1.iOS百度地图下载地址 http://developer.baidu.com/map/index.php?title=iossdk/sdkiosdev-download 根据需要选择不同的版本 ...
Linux安装Memcached服务
环境: CentOS 6.4 libevent-1.4.14b-stable memcached-1.4.21 查看是否安装libevent[root@localhost ~]# rpm -qa |g ...
Ajax技术详解
Ajax技术:Ajax描述了一种主要使用脚本(JS)操纵HTTP的web应用架构,它的主要特点是使用脚本操纵HTTP和web服务器进行数据交换,不会导致页面重载.Ajax的核心是JS的XMLHttpR ...
js 写成类的形式 js 静态变量 js方法 属性 json类
function ClassStudentList() { //[{"Cid":"0d","Students":[{"Sid&qu ...
IOS中对于一些控件的抖动效果
这两天在网上看到一个帖子讨论关于有些app 输入账密时候 错误的话会有抖动效果出现,然后自己琢磨了下如何实现,下面上代码!!! 首先 写一个UIView的分类 #import
纯CSS实现table表头固定(自创备忘)
因为之前约定时候产品没说要表头固定,这次迭代测试突然提出这个需求,而且不知道因为什么未知原因非要这样不可--因为之前用了table标签做表单,而且也没用插件,这下就难了点,找另外一个前端前辈妹子商量了 ...
学习笔记TF042:TF.Learn、分布式Estimator、深度学习Estimator
TF.Learn,TensorFlow重要模块,各种类型深度学习及流行机器学习算法.TensorFlow官方Scikit Flow项目迁移,谷歌员工Illia Polosukhin.唐源发起.Scik ...
【转】web.xml不同版本的头
web.xml v2.3 <?xml version="1.0" encoding="ISO-8859-1"?> ..
Java精选笔记_Java API
String类 String类的初始化 String是一个特殊的对象,一旦被初始化,就不会被改变 1.使用字符串常量直接初始化一个String对象 String s1="abc" ...
t4b代码生成_Ef+T4模板实现代码快速生成器相关推荐
- 创建代码生成器可以很简单:如何通过T4模板生成代码?[下篇]
在<上篇>中我们通过T4模板为我们指定的数据表成功生成了我们需要的用于添加.修改和删除操作的存储过程.但是这是一种基于单个文件的解决方案,即我们必须为每一个生成的存储过程建立一个模板.如果 ...
- C#代码生成之T4模板组成
我们在使用T4模板进行C#代码生成_C#_黄腾霄的博客-CSDN博客介绍了C#使用T4模板生成代码. 今天给大家详细介绍下T4模板的组成 T4模板的组成部分 T4模板的组成部分如图所示.主要由文本部分 ...
- 创建代码生成器可以很简单:如何通过T4模板生成代码?[上篇]
在<基于T4的代码生成方式>中,我对T4模板的组成结构.语法,以及T4引擎的工作原理进行了大体的介绍,并且编写了一个T4模板实现了如何将一个XML转变成C#代码.为了让由此需求的读者对T4 ...
- tt c mysql t4 bll_通过T4模板实现代码自动生成
1:准备.tt模板 usingBBFJ.OA.IBLL;usingBBFJ.OA.IDAL;usingBBFJ.OA.Model;usingSystem;usingSystem.Collections ...
- [转]使用T4模板批量生成代码
本文转自:http://www.cnblogs.com/K_tommy/archive/2013/04/06/T4.html 前言 之前在 "使用T4模板生成代码 - 初探" 文章 ...
- 黄聪:C#代码生成工具:文本模板初体验 Hello,World!
C#代码生成工具:文本模板初体验 Hello World 在VS中的文本模板(也称T4),它给我有点CodeSmith的感觉,也是通过模板加逻辑代码混编批量生成代码的方法,但是关于T4的资料不多,而且 ...
- T4模板:MVC中用T4模板快速生成代码
T4模板快速生成代码: 以快速生Dal文件为例,下面为T4模板文件的内容 <#@ template debug="false" hostspecific="true ...
- t4b代码生成_用T4模板实现简单的代码生成器
最近想在项目中使用一个代码生成器,用T4模板实现了,还是蛮方便的.关于T4模板的介绍可以看下园中相关系列文章T4的介绍,创建运行时模板.里面介绍蛮详细的. 代码生成器界面如下,比较简单,我这里是通过传 ...
- [转]MVC实用架构设计(三)——EF-Code First(3):使用T4模板生成相似代码
本文转自:http://www.cnblogs.com/guomingfeng/p/mvc-ef-t4.html 〇.目录 一.前言 二.工具准备 三.T4代码生成预热 (一) 单文件生成:Hello ...
最新文章
- java 无限级_JAVA+Hibernate 无限级分类
- p8大佬告诉你JSR - 133 都解决了哪些问题?
- lombok中的@Data注解与MyBatis的懒加载机制冲突解决
- centos who命令 查看当前登录系统用户信息
- Ubuntu桌面培训(Ubuntu Desktop Course)中文译本发布
- Android平台RTSP轻量级服务|RTMP推送摄像头或屏幕之音频接口设计
- IntelliJ IDEA中的神仙插件
- H3C 环路避免机制六:触发更新
- 商汤押注AI教育,成立“商汤教育”子品牌
- Android7.1取消wifi图标叉号
- MVC 发布到 windows2003遇到 'System.Web.WebPages.Razor 错误提示
- 用文本文档写的代码怎么运行?
- 3.15PMP试题每日一题
- 个人账目管理系统oracle,个人账务管理系统(论文).doc
- linux vi编辑器常用命令
- JSONObject.fromObject() Maven依赖
- centerOS环境变量配置
- R语言数据分析笔记——Cohort 存留分析
- 什么使格瓦拉风行至今
- 中医文化 —— 穴位