一、T4模板说明

1.T4模板是用来生成Model层实体类的

2.文件后缀为.tt

3.需要修改配置主要有:引用的SqlSugar.dll的位置、生成实体类的位置及生成实体类的命名空间

4.T4模板生成代码对数据库有要求,数据库应该是不区分大小写的,如果你创建的数据库是否区分大小写的“Chinese_PRC_CS_AS ”,

5.T4模板生成代码,中包括创建的视图

那么会抛出异常 'SYSOJBECTS'对象无效,关于修改数据库是否区分大小写可以参考:http://blog.csdn.net/u011127019/article/details/53283251

二、T4模板使用步骤

1.创建项目后,引用SqlSugar.dll

2.添加T4模板:右键项目,选择【运行时文本模板】,后缀为.tt

还可以,将原Demo中的模板,直接Copy到本项目中

原Demo中的文件内容为:

<#@ template debug="false" hostspecific="true" language="C#" #>
<#@ import namespace="System.Collections.Generic" #>
<#@ assembly name="System.Core" #>
<#@ assembly name="System.Xml" #>
<#@ assembly name="System.Xml.Linq" #>
<#@ assembly name="System.Data" #>
<#@ import namespace="System.Linq" #>
<#@ import namespace="System.Text" #>
<#@ import namespace="System.Collections.Generic" #>
<#@ import namespace="SqlSugar" #>
<#@ import namespace="System.IO" #>
<#@ import namespace="System.Web" #>
<#@ assembly name="$(SolutionDir)\WebTest\App_Lib\SqlSugar.dll" #> <# //当前项目目录
string projectDir = Host.ResolveAssemblyReference("$(ProjectDir)"); //解决方案目录
string solutionDir = Host.ResolveAssemblyReference("$(SolutionDir)"); using (var db = new SqlSugarClient("server=.;Initial Catalog=SqlSugarTest;Persist Security Info=True;User ID=sa;Password=sasa"))
{
db.ClassGenerating.CreateClassFiles(db, "E://T4/Models","Models"); };
#>

3.修改T4模板内容:

修改完数据库连接字符串,生成路径,命名空间后,快捷键Ctrl+S如果成功的情况下,会自动生成Model层到指定记录。

4.如果需要修改Model层类文件的生成内容,可以直接修改源代码的模板,也可以使用代码的方式来生成Model层,请往下看。

三、使用代码生成 model层

//T4 模板代码执行
using (var db = new SqlSugarClient("server=.;Initial Catalog=sysstudent;Persist Security Info=True;User ID=sa;Password=123"))
{
//可以结合别名表,请看别名表的用法
//db.SetMappingTables(mappingTableList);
db.ClassGenerating.CreateClassFiles(db, (@"F:\SolutionSet\MVC_Solution\SugarTwo\SugarTwo.Model\Model"), "SugarTwo.Model"); //只生成student和school表的实体
db.ClassGenerating.CreateClassFilesByTableNames(db, "e:/TestModels2", "Models", new string[] { "student", "school" }); //根据表名生成class字符串
var str = db.ClassGenerating.TableNameToClass(db, "Student");
var dynamicToClassStr = db.ClassGenerating.DynamicToClass(new { id = }, "dyName"); //根据SQL语句生成class字符串
// var str2 = db.ClassGenerating.SqlToClass(db, "select top 1 * from Student", "student"); //改变值(lassTemplate.ItemTemplate=XXXX)可以自定义格式
var tempItem = ClassTemplate.ItemTemplate;//例如可以在生成的实体添加默认构造函数给指定的字段赋默认值或者公司信息等
var temp = ClassTemplate.Template;
//设置新格式模板
//主键Guid.New(),
//CreateTime为DateTime.Now
//IsRemove=0
//UpdateTime为DateTime.Now
ClassTemplate.Template = "using System;\r\nusing System.Linq;\r\nusing System.Text;\r\n\r\nnamespace $namespace\r\n{\r\n public class $className\r\n {\r\n public $className() \r\n { \r\n this.CreateTime = DateTime.Now;\r\n this. = 0;\r\n this.UpdateTime=DateTime.Now;\r\n this.$primaryKeyName=Guid.NewGuid().ToString(\"N\").ToUpper();\r\n }\r\n $foreach\r\n }\r\n}\r\n"; //新格式的实体字符串
var str3 = db.ClassGenerating.TableNameToClass(db, "Student");
}

使用代码生成Model层,有个好处,如果T4模板在生成代码的过成功抛出异常,可以调试查看。

如果想自定义生成实体的一些格式请改变这3个静态变量的模版

 var tempItem=ClassTemplate.ItemTemplate;  类的模版
var temp=ClassTemplate.Template ; 字段模版
ClassTemplate.ClassFieldSummaryTemplate 字段摘要模版

更多:

.Net开源SqlServer ORM框架SqlSugar整理

SqlSugar框架T4模板的使用的更多相关文章

  1. 从零开始编写自己的C#框架(14)——T4模板在逻辑层中的应用(三)

    原本关于T4模板原想分5个章节详细解说的,不过因为最近比较忙,也不想将整个系列时间拉得太长,所以就将它们整合在一块了,可能会有很多细节没有讲到,希望大家自己对着代码与模板去研究. 本章代码量会比较大, ...

  2. 从零开始编写自己的C#框架(12)——T4模板在逻辑层中的应用(一)(附源码)

    对于T4模板很多朋友都不太熟悉,它在项目开发中,会帮我们减轻很大的工作量,提升我们的开发效率,减少出错概率.所以学好T4模板的应用,对于开发人员来说是非常重要的. 园子里对于T4模板的介绍与资料已经太 ...

  3. T4 模板自动生成带注释的实体类文件 - 只需要一个 SqlSugar.dll

    生成实体就是这么简单,只要建一个T4文件和 文件夹里面放一个DLL. 使用T4模板教程 步骤1 创建T4模板 ,一定要自已新建,把T4代码复制进去,好多人因为用我现成的T4报错(原因不明) 点击添加文 ...

  4. NFine框架的T4模板

    1.前言 前段时间在网上看到一个开源框架很好的.开源:ASP.NET MVC+EF6+Bootstrap开发框架,写代码就是比较比较麻烦,分层比较多,对于我这种偷懒的人就想到了写一个T4模板.不了解框 ...

  5. ASP.NET MVC+EF框架+EasyUI实现权限管理系列(12)-实现用户异步登录和T4模板

    原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(12)-实现用户异步登录和T4模板 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框架搭建  ...

  6. 快速开发框架,及库存管理系统,基于easyui框架和C#语言MVC、EntityFrameWork、T4模板技术。

    快速开发框架,及库存管理系统,基于easyui框架和C#语言MVC.EntityFrameWork.T4模板技术. 产品界面如下图所示: 源码结构: 开放全部源码,如有需要请联系,QQ:1107141 ...

  7. 从零开始编写自己的C#框架(13)——T4模板在逻辑层中的应用(二)

    最近这段时间特忙,公事私事,忙得有时都没时间打开电脑了,这两周只能尽量更新,以后再将章节补回来. 直接进入主题,通过上一章节,大家明白了怎么使用模板类编写T4模板,本章进的是一些简单技巧的应用 1.首 ...

  8. asp.net mvc 通过T4模板生成框架

    http://www.cnblogs.com/rdst/archive/2012/08/13/2637210.html http://www.kuqin.com/shuoit/20140716/341 ...

  9. 使用T4模板为EF框架添加数据库实体注释

    网上有一个解决方法如下: http://www.cnblogs.com/stone_w/archive/2012/10/25/2738345.html 不过我试了下没解决太麻烦了 而且一旦EF要重新生 ...

随机推荐

  1. LintCode 38. Search a 2D Matrix II

    Write an efficient algorithm that searches for a value in an m x n matrix, return the occurrence of ...

  2. Eclipse中添加android sdk javadoc和source

    在 javadoc location path中添加file:/D:/Android_SDK/sdk/docs/reference/   在 source attachment中添加为 Externa ...

  3. Linux libtins 库安装教程

    因为工作原因需要用到libtins网络库, 所以今天去装一下. 很尴尬,由于本人对linux理解比较浅, 所以在中途遇到了一些问题. 虽然只是简单的安装步骤,但是阻挡不了自己菜啊. 一.  下载lib ...

  4. (转载)struct 与typdef struct的区别

    (转载)http://blog.csdn.net/piratejk/article/details/3491226 1. 基本解释 typedef为C语言的关键字,作用是为一种数据类型定义一个新名字. ...

  5. POJ -- 2436

    Disease Management Description Alas! A set of D (1 <= D <= 15) diseases (numbered 1..D) is run ...

  6. js怎样生成json的数据

    var row1 = {};row1.name = 'david';row1.age = '20'; //或者var row2 = {name: 'peter', age: '23'}; var da ...

  7. Python win32打印示例

    # -*- coding:utf-8 -*- # Author: Pete Yim<xpHook@gmail.com> # Date : 13-8-22 # Copyright (c) 2 ...

  8. Android 快捷方式

    1. 需要权限: <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT&quo ...

  9. Microsoft Visual Studio 2013如何设置查找头文件的路径

  10. JavaBean以及MVC模式

    JavaBean,  咖啡豆. JavaBean是一种开发规范,可以说是一种技术. JavaBean就是一个普通的java类.只有符合以下规定才能称之为javabean: 1)必须提供无参数的构造方法 ...