SqlSugar_T4 模板自动生成带注释的实体类文件
原文地址:https://www.cnblogs.com/sunkaixuan/p/5751503.html#
sqlsugar版本 SqlSugar-4.6.0.1
一:
创建T4模板 ,一定要自已新建,把T4代码复制进去,好多人因为用我现成的T4报错(原因不明)
点击添加文件,选择【 运行时文本模版】(后缀为 .tt)取个名字点确定。
二:
设置当前T4所需要的序集并且引用 SqlSugar.dll
编写连接数据库代码
调用SqlSugar生成实体函数,填写参数。
<#@ template hostspecific="true" language="C#" #> <#@ assembly name="System.Core" #> <#@ import namespace="System.Linq" #> <#@ import namespace="System.Text" #> <#@ import namespace="System.Collections.Generic" #> <#@ import namespace="SqlSugar" #> <#@ import namespace="Newtonsoft.Json" #> <#@ import namespace="System.IO" #> <#@ import namespace="System.Web" #> <#@ assembly name="$(SolutionDir)\Lib\Newtonsoft.Json.dll" #> <#@ assembly name="$(SolutionDir)\Lib\SqlSugar.dll" #> <# //当前项目目录 string projectDir = Host.ResolveAssemblyReference("$(ProjectDir)"); //解决方案目录 string solutionDir = Host.ResolveAssemblyReference("$(SolutionDir)"); var db = new SqlSugarClient(new ConnectionConfig() {
ConnectionString = "server=PC-201508161038\\SQLEXPRESS;Initial Catalog=201711SqlSugar_DB;Persist Security Info=True;User ID=sa;Password=123456",
DbType = DbType.SqlServer, IsAutoCloseConnection = true }); db.DbFirst.CreateClassFile("E:\\TProject\\SqlSugarDemo\\Model"); #>
遇到的问题
1,程序保存了,但是不生成也不报错
新建的tt用的自定义工具默认是TextTemplatingFilePreprocessor,改成TextTemplatingFileGenerator后就可以了
2,提示Host未定义
hostspecific="true"
3,提示转义符号问题。(使用双斜杠)
4,最重要的
一定要看清自己用的sqlsugar.dll的版本。不同版本用法是不一样的。自己开始参考头部原文地址的文章设置的,出错找不到原因。后面在github下载新的源码。
引用源码里面的sqlsugar.dll,参考源码里面的T4模板用法实现的。
附1:数据库创建实例
CREATE TABLE [dbo].[dt_ip]( [id] [int] IDENTITY(1,1) NOT NULL Primary Key , [bip] [nvarchar](100) NULL, [eip] [nvarchar](100) NULL, [status] [int] NOT NULL, [by1] [nvarchar](2000) NULL) GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'dt_ip', @level2type=N'COLUMN',@level2name=N'id' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'开始ip' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'dt_ip', @level2type=N'COLUMN',@level2name=N'bip' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'结束ip' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'dt_ip', @level2type=N'COLUMN',@level2name=N'eip' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'状态' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'dt_ip', @level2type=N'COLUMN',@level2name=N'status' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'备用字段' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'dt_ip', @level2type=N'COLUMN',@level2name=N'by1' GO
附二:生成的实体类
using System; using System.Linq; using System.Text; namespace Model { ///<summary> /// ///</summary> public partial class dt_ip { public dt_ip(){ } /// <summary> /// Desc:id /// Default: /// Nullable:False /// </summary> public int id {get;set;} /// <summary> /// Desc:开始ip /// Default: /// Nullable:True /// </summary> public string bip {get;set;} /// <summary> /// Desc:结束ip /// Default: /// Nullable:True /// </summary> public string eip {get;set;} /// <summary> /// Desc:状态 /// Default: /// Nullable:False /// </summary> public int status {get;set;} /// <summary> /// Desc:备用字段 /// Default: /// Nullable:True /// </summary> public string by1 {get;set;} } }
demo地址:http://download.csdn.net/download/believeys/10144397 (如果需要可以帮着下载不用扣分)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架