官网:http://www.codeisbug.com

代码已上传GitHub:https://github.com/SeaLee02/sealee

本篇主要讲使用SqlSugar包进行Model生成,不会在乎具体到数据的什么类型映射成什么类型。

环境:.net 4.6.1,Sqlsugar4

问题:我们写代码跑是完全没有问题的,不管是什么数据库,都是可以的。如果我们使用的T4就会有问题,Mysql和Oracle会报错。解决办法,下面说到。

①安装我们的包,注意我的版本,然后生成,让bin文件生成我们的dll文件

Oracle,Mysql,SQlserver生成实体映射之SqlSugarT4

 

PS:T4模板里面的代码你可以在项目中写代码,调试好,然后把代码复制进去

Oracle,Mysql,SQlserver生成实体映射之SqlSugarT4

 

 

Sqlserver

② 创建T4文件 把下面的代码复制进去

Oracle,Mysql,SQlserver生成实体映射之SqlSugarT4

<#@ template debug="true" hostspecific="true" language="C#" #>
<#@ import namespace="System.Collections.Generic" #>
<#@ assembly name="$(SolutionDir)\Sealee.Util\bin\Debug\Sealee.Util.dll" #>
<#@ assembly name="System.Core" #>
<#@ assembly name="System.Xml" #>
<#@ assembly name="System.Xml.Linq" #>
<#@ assembly name="System.Data" #>
<#@ 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" #>
<#@ import namespace="Sealee.Util" #>
<#@ assembly name="$(SolutionDir)\SqlSugarDemo\bin\Debug\Newtonsoft.Json.dll" #>
<#@ assembly name="$(SolutionDir)\SqlSugarDemo\bin\Debug\SqlSugar.dll" #>
<# 
     
    //CTRL+S将会执行该文件的代码,自动作生实体

    //当前项目目录
    string projectDir = Host.ResolveAssemblyReference("$(ProjectDir)");

    //解决方案目录
    string solutionDir = Host.ResolveAssemblyReference("$(SolutionDir)");

     var db = new SqlSugarClient(new ConnectionConfig() { 
                ConnectionString =  @"server=PV-X00273458\SQLEXPRESS;uid=sa;pwd=123;database=SchoolDB",
                DbType = DbType.SqlServer, 
                IsAutoCloseConnection = true,
                  InitKeyType = InitKeyType.Attribute});


          List<DbTableInfo> list = db.DbMaintenance.GetTableInfoList();
                    List<DbTableInfo> viewList = db.DbMaintenance.GetViewInfoList();
                    //
                    foreach (DbTableInfo table in list)
                    {
                        string table_name = table.Name.ToCase();
                        db.MappingTables.Add(table_name, table.Name);
                        List<DbColumnInfo> dd = db.DbMaintenance.GetColumnInfosByTableName(table.Name);
                        foreach (DbColumnInfo item in dd)
                        {
                            db.MappingColumns.Add(item.DbColumnName.ToCase(), item.DbColumnName, table_name);              
                        }
            db.DbFirst.IsCreateAttribute().Where(table.Name).CreateClassFile(projectDir+"\\Model2","Modle");
             }
                    //视图
                    foreach (DbTableInfo table in viewList)
                    {
                        string table_name = table.Name.ToCase();
                        db.MappingTables.Add(table_name, table.Name);
                        List<DbColumnInfo> dd = db.DbMaintenance.GetColumnInfosByTableName(table.Name);
                        foreach (DbColumnInfo item in dd)
                        {
                            db.MappingColumns.Add(item.DbColumnName.ToCase(), item.DbColumnName, table_name);     
                        }
           db.DbFirst.IsCreateAttribute().Where(table.Name).CreateClassFile(projectDir+"\\Model2","Modle");
             }
      //db.DbFirst.IsCreateAttribute().CreateClassFile(projectDir+"\\Model","Modle");

     
#>
View Code

相关文章:

  • 2021-11-04
  • 2022-01-29
  • 2021-06-14
  • 2022-12-23
  • 2022-12-23
  • 2021-12-12
  • 2021-10-11
  • 2021-04-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-08-12
  • 2021-06-06
  • 2021-05-06
相关资源
相似解决方案