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