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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM