使用T4模板连接Oracle数据库生成类的时候出错(跑代码没有问题,使用T4出现问题) 返回

SqlSugar 老数据
3 3271

我在项目已经安装了这个包

image.png

image.png

image.png


这是T4代码:


<#@ 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="Oracle.ManagedDataAccess.Client" #>

<#@ import namespace="System.IO" #>

<#@ import namespace="System.Web" #>

<#@ import namespace="Sealee.Util" #>

<#@ assembly name="$(SolutionDir)\SqlSugarDemo\bin\Debug\Oracle.ManagedDataAccess.dll" #>

<#@ 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 = "Data Source = *; User ID = =*; Password = *; ",

                    DbType = DbType.Oracle,

                    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+"\\ModelOracle","ModleOracle");

                        }

             }

                    //视图

                    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+"\\ModelOracle","ModelOracle");

                        }

             }

      //db.DbFirst.IsCreateAttribute().CreateClassFile(projectDir+"\\Model","Modle");


     

#>




热忱回答3

  • .NET CORE T4的DLL引用我也没成功过,你用 .NET 的DLL用来生成,可能是微软CORE对T4还不友好

    0 回复
  • @fate stay night:我的就是.NET环境。。

    0 回复
  • 需要我们下载Sqlqugar这个项目,然后把Oracle和Mysql包用nuget更新一下到最新版本,然后从新生存。

    具体解决办法:https://www.cnblogs.com/Sea1ee/p/10236787.html

    0 回复