使用T4模板连接Oracle数据库生成类的时候出错(跑代码没有问题,使用T4出现问题) 返回
我在项目已经安装了这个包



这是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)
-
fate stay night VIP0
2019/1/7.NET CORE T4的DLL引用我也没成功过,你用 .NET 的DLL用来生成,可能是微软CORE对T4还不友好
0 回复 -
没有谁离不开谁 VIP0
2019/1/7@fate stay night:我的就是.NET环境。。
0 回复 -
没有谁离不开谁 VIP0
2019/1/8需要我们下载Sqlqugar这个项目,然后把Oracle和Mysql包用nuget更新一下到最新版本,然后从新生存。
具体解决办法:https://www.cnblogs.com/Sea1ee/p/10236787.html
0 回复