|
|
@@ -12,17 +12,22 @@ public class CodeGenService : IDynamicApiController, ITransient
|
|
|
private readonly IViewEngine _viewEngine;
|
|
|
private readonly ICommonService _commonService;
|
|
|
|
|
|
+ private readonly ISqlSugarClient db;
|
|
|
+
|
|
|
public CodeGenService(SqlSugarRepository<SysCodeGen> sysCodeGenRep,
|
|
|
SqlSugarRepository<SysMenu> sysMenuRep,
|
|
|
CodeGenConfigService codeGenConfigService,
|
|
|
IViewEngine viewEngine,
|
|
|
- ICommonService commonService)
|
|
|
+ ICommonService commonService,
|
|
|
+ ISqlSugarClient db)
|
|
|
{
|
|
|
_sysCodeGenRep = sysCodeGenRep;
|
|
|
_sysMenuRep = sysMenuRep;
|
|
|
_codeGenConfigService = codeGenConfigService;
|
|
|
_viewEngine = viewEngine;
|
|
|
_commonService = commonService;
|
|
|
+
|
|
|
+ this.db = db;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
@@ -124,10 +129,9 @@ public class CodeGenService : IDynamicApiController, ITransient
|
|
|
public async Task<List<TableOutput>> GetTableList(string configId = SqlSugarConst.ConfigId)
|
|
|
{
|
|
|
//切库,多库代码生成用
|
|
|
- if (configId != SqlSugarConst.ConfigId)
|
|
|
- _sysCodeGenRep.Context.AsTenant().ChangeDatabase(configId);
|
|
|
+ db.AsTenant().ChangeDatabase(configId);
|
|
|
+ List<DbTableInfo> dbTableInfos = db.DbMaintenance.GetTableInfoList(false);//这里不能走缓存,否则切库不起作用
|
|
|
|
|
|
- List<DbTableInfo> dbTableInfos = _sysCodeGenRep.Context.DbMaintenance.GetTableInfoList(false);//这里不能走缓存,否则切库不起作用
|
|
|
List<string> dbTableNames = dbTableInfos.Select(x => x.Name).ToList();
|
|
|
|
|
|
IEnumerable<EntityInfo> entityInfos = await _commonService.GetEntityInfos();
|
|
|
@@ -154,15 +158,13 @@ public class CodeGenService : IDynamicApiController, ITransient
|
|
|
public List<TableColumnOuput> GetColumnListByTableName(string tableName, string configId = SqlSugarConst.ConfigId)
|
|
|
{
|
|
|
//切库,多库代码生成用
|
|
|
- if (configId != SqlSugarConst.ConfigId)
|
|
|
- _sysCodeGenRep.Context.AsTenant().ChangeDatabase(configId);
|
|
|
+ db.AsTenant().ChangeDatabase(configId);
|
|
|
|
|
|
// 获取实体类型属性
|
|
|
- var entityType = _sysCodeGenRep.Context.DbMaintenance.GetTableInfoList().FirstOrDefault(u => u.Name == tableName);
|
|
|
+ var entityType = db.DbMaintenance.GetTableInfoList(false).FirstOrDefault(u => u.Name == tableName);
|
|
|
if (entityType == null) return null;
|
|
|
-
|
|
|
// 按原始类型的顺序获取所有实体类型属性(不包含导航属性,会返回null)
|
|
|
- return _sysCodeGenRep.Context.DbMaintenance.GetColumnInfosByTableName(entityType.Name).Select(u => new TableColumnOuput
|
|
|
+ return db.DbMaintenance.GetColumnInfosByTableName(entityType.Name).Select(u => new TableColumnOuput
|
|
|
{
|
|
|
ColumnName = u.DbColumnName,
|
|
|
ColumnKey = u.IsPrimarykey.ToString(),
|
|
|
@@ -180,14 +182,14 @@ public class CodeGenService : IDynamicApiController, ITransient
|
|
|
public List<TableColumnOuput> GetColumnList([FromQuery] AddCodeGenInput input)
|
|
|
{
|
|
|
//切库,多库代码生成用
|
|
|
- if (!string.IsNullOrEmpty(input.ConfigId) && input.ConfigId != SqlSugarConst.ConfigId)
|
|
|
- _sysCodeGenRep.Context.AsTenant().ChangeDatabase(input.ConfigId);
|
|
|
+ if (!string.IsNullOrEmpty(input.ConfigId))
|
|
|
+ db.AsTenant().ChangeDatabase(input.ConfigId);
|
|
|
|
|
|
var entityType = _commonService.GetEntityInfos().Result.FirstOrDefault(m => m.EntityName == input.TableName);
|
|
|
if (entityType == null)
|
|
|
return null;
|
|
|
|
|
|
- return _sysCodeGenRep.Context.DbMaintenance.GetColumnInfosByTableName(entityType.DbTableName, false).Select(u => new TableColumnOuput
|
|
|
+ return db.DbMaintenance.GetColumnInfosByTableName(entityType.DbTableName, false).Select(u => new TableColumnOuput
|
|
|
{
|
|
|
ColumnName = u.DbColumnName,
|
|
|
ColumnKey = u.IsPrimarykey.ToString(),
|