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 (如果需要可以帮着下载不用扣分)

posted @   花影疏帘  阅读(4499)  评论(2编辑  收藏  举报
编辑推荐:
· 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 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示