SqlSugar框架T4模板的使用

一、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中的文件内容为:

  View Code

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 = 1 }, "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整理

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值