v3.4.6
This commit is contained in:
@@ -9,6 +9,7 @@ using JNPF.Common.Models;
|
||||
using JNPF.Common.Models.VisualDev;
|
||||
using JNPF.Common.Security;
|
||||
using JNPF.DependencyInjection;
|
||||
using JNPF.Extras.DatabaseAccessor.SqlSugar.Models;
|
||||
using JNPF.FriendlyException;
|
||||
using JNPF.Logging;
|
||||
using JNPF.Systems.Entitys.Dto.Database;
|
||||
@@ -29,7 +30,7 @@ public class DataBaseManager : IDataBaseManager, ITransient
|
||||
/// <summary>
|
||||
/// 初始化客户端.
|
||||
/// </summary>
|
||||
private static SqlSugarScope _sqlSugarClient;
|
||||
private static SqlSugarScope? _sqlSugarClient;
|
||||
|
||||
/// <summary>
|
||||
/// 用户管理器.
|
||||
@@ -41,17 +42,24 @@ public class DataBaseManager : IDataBaseManager, ITransient
|
||||
/// </summary>
|
||||
private readonly ConnectionStringsOptions _connectionStrings;
|
||||
|
||||
/// <summary>
|
||||
/// 多租户配置选项.
|
||||
/// </summary>
|
||||
private readonly TenantOptions _tenant;
|
||||
|
||||
/// <summary>
|
||||
/// 构造函数.
|
||||
/// </summary>
|
||||
public DataBaseManager(
|
||||
IOptions<ConnectionStringsOptions> connectionOptions,
|
||||
IUserManager userManager,
|
||||
IOptions<TenantOptions> tenantOptions,
|
||||
ISqlSugarClient context)
|
||||
{
|
||||
_sqlSugarClient = (SqlSugarScope)context;
|
||||
_userManager = userManager;
|
||||
_connectionStrings = connectionOptions.Value;
|
||||
_tenant = tenantOptions.Value;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -61,46 +69,66 @@ public class DataBaseManager : IDataBaseManager, ITransient
|
||||
/// <returns>切库后的SqlSugarClient.</returns>
|
||||
public SqlSugarScope ChangeDataBase(DbLinkEntity link)
|
||||
{
|
||||
if (_sqlSugarClient.AsTenant().IsAnyConnection(link.Id))
|
||||
if (!"default".Equals(link.Id) && _tenant.MultiTenancyType.Equals("COLUMN"))
|
||||
{
|
||||
_sqlSugarClient.ChangeDatabase(link.Id);
|
||||
_sqlSugarClient.QueryFilter.AddTableFilter<ITenantFilter>(it => it.TenantId == link.Id);
|
||||
}
|
||||
else
|
||||
{
|
||||
_sqlSugarClient.AddConnection(new ConnectionConfig()
|
||||
if (_sqlSugarClient.AsTenant().IsAnyConnection(link.Id))
|
||||
{
|
||||
ConfigId = link.Id,
|
||||
DbType = ToDbType(link.DbType),
|
||||
ConnectionString = ToConnectionString(link),
|
||||
InitKeyType = InitKeyType.Attribute,
|
||||
IsAutoCloseConnection = true
|
||||
});
|
||||
var db = _sqlSugarClient.GetConnectionScope(link.Id);
|
||||
|
||||
// 设置超时时间
|
||||
db.Ado.CommandTimeOut = 30;
|
||||
db.Aop.OnLogExecuted = (sql, pars) =>
|
||||
_sqlSugarClient.ChangeDatabase(link.Id);
|
||||
}
|
||||
else
|
||||
{
|
||||
var oldColor = Console.ForegroundColor;
|
||||
Console.ForegroundColor = ConsoleColor.Green;
|
||||
var finalSql = UtilMethods.GetSqlString(db.CurrentConnectionConfig.DbType, sql, pars);
|
||||
Console.WriteLine($"【{DateTime.Now.ToString("HH:mm:ss.fff")}——SQL执行完成】{db.Ado.SqlExecutionTime.TotalMilliseconds} ms");
|
||||
Console.WriteLine(finalSql);
|
||||
Console.ForegroundColor = oldColor;
|
||||
if (db.Ado.SqlExecutionTime.TotalMilliseconds > 3000)
|
||||
_sqlSugarClient.AddConnection(new ConnectionConfig()
|
||||
{
|
||||
Log.Warning($"慢查询: {db.Ado.SqlExecutionTime.TotalMilliseconds}ms, SQL: " + finalSql);
|
||||
ConfigId = link.Id,
|
||||
DbType = ToDbType(link.DbType),
|
||||
ConnectionString = ToConnectionString(link),
|
||||
InitKeyType = InitKeyType.Attribute,
|
||||
IsAutoCloseConnection = true
|
||||
});
|
||||
|
||||
_sqlSugarClient.Ado.CommandTimeOut = 30;
|
||||
|
||||
_sqlSugarClient.Aop.OnLogExecuted = (sql, pars) =>
|
||||
{
|
||||
var oldColor = Console.ForegroundColor;
|
||||
Console.ForegroundColor = ConsoleColor.Green;
|
||||
var finalSql = UtilMethods.GetSqlString(_sqlSugarClient.CurrentConnectionConfig.DbType, sql, pars);
|
||||
Console.WriteLine($"【{DateTime.Now.ToString("HH:mm:ss.fff")}——SQL执行完成】{_sqlSugarClient.Ado.SqlExecutionTime.TotalMilliseconds} ms");
|
||||
Console.WriteLine(finalSql);
|
||||
Console.ForegroundColor = oldColor;
|
||||
if (_sqlSugarClient.Ado.SqlExecutionTime.TotalMilliseconds > 3000)
|
||||
{
|
||||
Log.Warning($"慢查询: {_sqlSugarClient.Ado.SqlExecutionTime.TotalMilliseconds}ms, SQL: " + finalSql);
|
||||
}
|
||||
Console.WriteLine();
|
||||
};
|
||||
_sqlSugarClient.Aop.OnError = (ex) =>
|
||||
{
|
||||
Log.Error(UtilMethods.GetSqlString(_sqlSugarClient.CurrentConnectionConfig.DbType, ex.Sql, (SugarParameter[])ex.Parametres));
|
||||
};
|
||||
|
||||
if (_sqlSugarClient.CurrentConnectionConfig.DbType == SqlSugar.DbType.Oracle)
|
||||
{
|
||||
_sqlSugarClient.Aop.OnExecutingChangeSql = (sql, pars) =>
|
||||
{
|
||||
if (pars != null)
|
||||
{
|
||||
foreach (var item in pars)
|
||||
{
|
||||
// 如果是DbTppe=string设置成OracleDbType.Nvarchar2
|
||||
item.IsNvarchar2 = true;
|
||||
}
|
||||
};
|
||||
return new KeyValuePair<string, SugarParameter[]>(sql, pars);
|
||||
};
|
||||
}
|
||||
Console.WriteLine();
|
||||
};
|
||||
db.Aop.OnError = (ex) =>
|
||||
{
|
||||
Log.Error(UtilMethods.GetSqlString(db.CurrentConnectionConfig.DbType, ex.Sql, (SugarParameter[])ex.Parametres));
|
||||
};
|
||||
|
||||
_sqlSugarClient.ChangeDatabase(link.Id);
|
||||
_sqlSugarClient.ChangeDatabase(link.Id);
|
||||
}
|
||||
}
|
||||
|
||||
return _sqlSugarClient;
|
||||
}
|
||||
|
||||
@@ -141,6 +169,7 @@ public class DataBaseManager : IDataBaseManager, ITransient
|
||||
else
|
||||
flag = await _sqlSugarClient.Ado.ExecuteCommandAsync(strSql);
|
||||
|
||||
_sqlSugarClient.ChangeDatabase(_connectionStrings.ConfigId);
|
||||
return flag;
|
||||
}
|
||||
|
||||
@@ -155,7 +184,9 @@ public class DataBaseManager : IDataBaseManager, ITransient
|
||||
if (link != null && _sqlSugarClient.CurrentConnectionConfig.ConfigId != link.Id)
|
||||
_sqlSugarClient = ChangeDataBase(link);
|
||||
|
||||
return _sqlSugarClient.Ado.SqlQuery<dynamic>(strSql).Count > 0;
|
||||
var data = _sqlSugarClient.Ado.SqlQuery<dynamic>(strSql).Count > 0;
|
||||
_sqlSugarClient.ChangeDatabase(_connectionStrings.ConfigId);
|
||||
return data;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -180,6 +211,7 @@ public class DataBaseManager : IDataBaseManager, ITransient
|
||||
{
|
||||
foreach (var item in dicList) flag = await _sqlSugarClient.Updateable(item).AS(table).WhereColumns(primaryField).ExecuteCommandAsync();
|
||||
}
|
||||
_sqlSugarClient.ChangeDatabase(_connectionStrings.ConfigId);
|
||||
return flag;
|
||||
}
|
||||
|
||||
@@ -200,6 +232,7 @@ public class DataBaseManager : IDataBaseManager, ITransient
|
||||
if (string.IsNullOrEmpty(primaryField))
|
||||
flag = await _sqlSugarClient.Insertable(dicList).AS(table).ExecuteReturnIdentityAsync();
|
||||
|
||||
_sqlSugarClient.ChangeDatabase(_connectionStrings.ConfigId);
|
||||
return flag;
|
||||
}
|
||||
|
||||
@@ -215,6 +248,7 @@ public class DataBaseManager : IDataBaseManager, ITransient
|
||||
if (link != null && _sqlSugarClient.CurrentConnectionConfig.ConfigId != link.Id)
|
||||
_sqlSugarClient = ChangeDataBase(link);
|
||||
CreateTable(tableModel, tableFieldList);
|
||||
_sqlSugarClient.ChangeDatabase(_connectionStrings.ConfigId);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -239,6 +273,7 @@ public class DataBaseManager : IDataBaseManager, ITransient
|
||||
}
|
||||
//if (_sqlSugarClient.CurrentConnectionConfig.DbType == SqlSugar.DbType.MySql)
|
||||
// AddColumnMySql(tableName, tableFieldList);
|
||||
_sqlSugarClient.ChangeDatabase(_connectionStrings.ConfigId);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
@@ -260,6 +295,7 @@ public class DataBaseManager : IDataBaseManager, ITransient
|
||||
try
|
||||
{
|
||||
_sqlSugarClient.DbMaintenance.DropTable(table);
|
||||
_sqlSugarClient.ChangeDatabase(_connectionStrings.ConfigId);
|
||||
return true;
|
||||
}
|
||||
catch (Exception)
|
||||
@@ -284,6 +320,7 @@ public class DataBaseManager : IDataBaseManager, ITransient
|
||||
try
|
||||
{
|
||||
CreateTable(tableModel, tableFieldList);
|
||||
_sqlSugarClient.ChangeDatabase(_connectionStrings.ConfigId);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
@@ -309,15 +346,18 @@ public class DataBaseManager : IDataBaseManager, ITransient
|
||||
var sidx = pageInput.sidx.IsNotEmptyOrNull() && pageInput.sort.IsNotEmptyOrNull(); // 按前端参数排序
|
||||
var defaultSidx = columnDesign.defaultSidx.IsNotEmptyOrNull() && columnDesign.sort.IsNotEmptyOrNull(); // 按模板默认排序
|
||||
|
||||
var dataRuleJson = new List<IConditionalModel>();
|
||||
if (pageInput.dataRuleJson.IsNotEmptyOrNull()) dataRuleJson = _sqlSugarClient.Utilities.JsonToConditionalModels(pageInput.dataRuleJson);
|
||||
|
||||
var querJson = new List<IConditionalModel>();
|
||||
if (pageInput.queryJson.IsNotEmptyOrNull()) querJson = _sqlSugarClient.Utilities.JsonToConditionalModels(pageInput.queryJson);
|
||||
|
||||
var superQueryJson = new List<IConditionalModel>();
|
||||
if (pageInput.superQueryJson.IsNotEmptyOrNull()) superQueryJson = _sqlSugarClient.Utilities.JsonToConditionalModels(pageInput.superQueryJson);
|
||||
// var sql = _sqlSugarClient.SqlQueryable<object>(strSql)
|
||||
// .Where(querJson).Where(superQueryJson).Where(dataPermissions).ToSqlString();
|
||||
// .Where(dataRuleJson).Where(querJson).Where(superQueryJson).Where(dataPermissions).ToSqlString();
|
||||
DataTable dt = _sqlSugarClient.SqlQueryable<object>(strSql)
|
||||
.Where(querJson).Where(superQueryJson).Where(dataPermissions)
|
||||
.Where(dataRuleJson).Where(querJson).Where(superQueryJson).Where(dataPermissions)
|
||||
.OrderByIF(sidx, pageInput.sidx + " " + pageInput.sort).OrderByIF(!sidx && defaultSidx, columnDesign.defaultSidx + " " + columnDesign.sort)
|
||||
.ToDataTablePage(pageInput.currentPage, pageInput.pageSize, ref total);
|
||||
|
||||
@@ -329,7 +369,7 @@ public class DataBaseManager : IDataBaseManager, ITransient
|
||||
dt.Columns[i].ColumnName = outColumnName.TryGetValue(dt.Columns[i].ColumnName.ToUpper(), out resultKey) == true ? outColumnName[dt.Columns[i].ColumnName.ToUpper()] : dt.Columns[i].ColumnName.ToUpper();
|
||||
}
|
||||
|
||||
return new PageResult<Dictionary<string, object>>()
|
||||
var data = new PageResult<Dictionary<string, object>>()
|
||||
{
|
||||
pagination = new PageResult()
|
||||
{
|
||||
@@ -339,6 +379,10 @@ public class DataBaseManager : IDataBaseManager, ITransient
|
||||
},
|
||||
list = dt.ToObject<List<Dictionary<string, string>>>().ToObject<List<Dictionary<string, object>>>()
|
||||
};
|
||||
|
||||
_sqlSugarClient.ChangeDatabase(_connectionStrings.ConfigId);
|
||||
|
||||
return data;
|
||||
//}
|
||||
//catch (Exception ex)
|
||||
//{
|
||||
@@ -357,7 +401,26 @@ public class DataBaseManager : IDataBaseManager, ITransient
|
||||
if (link != null && _sqlSugarClient.CurrentConnectionConfig.ConfigId != link.Id)
|
||||
_sqlSugarClient = ChangeDataBase(link);
|
||||
|
||||
return _sqlSugarClient.DbMaintenance.IsAnyTable(table, false);
|
||||
var data = _sqlSugarClient.DbMaintenance.IsAnyTable(table, false);
|
||||
_sqlSugarClient.ChangeDatabase(_connectionStrings.ConfigId);
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 表是否存在数据.
|
||||
/// </summary>
|
||||
/// <param name="link">数据连接.</param>
|
||||
/// <param name="table">表名.</param>
|
||||
/// <returns></returns>
|
||||
public bool IsAnyData(DbLinkEntity link, string table)
|
||||
{
|
||||
if (link != null && _sqlSugarClient.CurrentConnectionConfig.ConfigId != link.Id)
|
||||
_sqlSugarClient = ChangeDataBase(link);
|
||||
|
||||
var data = _sqlSugarClient.Queryable<dynamic>().AS(table).Any();
|
||||
_sqlSugarClient.ChangeDatabase(_connectionStrings.ConfigId);
|
||||
return data;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -372,7 +435,10 @@ public class DataBaseManager : IDataBaseManager, ITransient
|
||||
if (link != null && _sqlSugarClient.CurrentConnectionConfig.ConfigId != link.Id)
|
||||
_sqlSugarClient = ChangeDataBase(link);
|
||||
|
||||
return _sqlSugarClient.DbMaintenance.IsAnyColumn(table, column, false);
|
||||
var data = _sqlSugarClient.DbMaintenance.IsAnyColumn(table, column, false);
|
||||
|
||||
_sqlSugarClient.ChangeDatabase(_connectionStrings.ConfigId);
|
||||
return data;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -385,41 +451,20 @@ public class DataBaseManager : IDataBaseManager, ITransient
|
||||
{
|
||||
if (link != null && _sqlSugarClient.CurrentConnectionConfig.ConfigId != link.Id) _sqlSugarClient = ChangeDataBase(link);
|
||||
|
||||
List<DbTableFieldModel> list;
|
||||
if (link.DbType == SqlSugar.DbType.PostgreSQL.ToString())
|
||||
{
|
||||
var sql = @"SELECT pcolumn.table_name AS tableName,pcolumn.column_name AS field,pcolumn.udt_name AS dataType,
|
||||
pcolumn.column_default as defaults,col_description(pclass.oid, pcolumn.ordinal_position) AS fieldName,
|
||||
CASE WHEN pcolumn.numeric_scale>0 THEN pcolumn.numeric_precision ELSE COALESCE(pcolumn.character_maximum_length,0) END AS dataLength,
|
||||
CASE WHEN pcolumn.is_nullable = 'YES' THEN 1 ELSE 0 END AS allowNull,
|
||||
CASE WHEN pcolumn.column_default LIKE 'nextval%' THEN true ELSE false END AS identity,
|
||||
CASE WHEN pkey.colname = pcolumn.column_name THEN true ELSE false END AS primaryKey
|
||||
FROM information_schema.columns pcolumn
|
||||
INNER JOIN pg_class pclass ON pcolumn.table_name = pclass.relname
|
||||
LEFT JOIN (
|
||||
SELECT pg_class.relname,pg_attribute.attname AS colname FROM
|
||||
pg_constraint INNER JOIN pg_class
|
||||
ON pg_constraint.conrelid = pg_class.oid
|
||||
INNER JOIN pg_attribute ON pg_attribute.attrelid = pg_class.oid
|
||||
and pg_attribute.attnum = pg_constraint.conkey[1]
|
||||
INNER JOIN pg_type ON pg_type.oid = pg_attribute.atttypid
|
||||
where pg_constraint.contype='p'
|
||||
) pkey ON pcolumn.table_name = pkey.relname
|
||||
WHERE pcolumn.table_name='{0}' ORDER BY ordinal_position";
|
||||
list = _sqlSugarClient.SqlQueryable<DbTableFieldModel>(string.Format(sql, tableName)).ToList();
|
||||
}
|
||||
else
|
||||
{
|
||||
list = _sqlSugarClient.DbMaintenance.GetColumnInfosByTableName(tableName, false).Adapt<List<DbTableFieldModel>>();
|
||||
}
|
||||
return list;
|
||||
var list = _sqlSugarClient.DbMaintenance.GetColumnInfosByTableName(tableName, false);
|
||||
|
||||
_sqlSugarClient.ChangeDatabase(_connectionStrings.ConfigId);
|
||||
return list.Adapt<List<DbTableFieldModel>>();
|
||||
}
|
||||
|
||||
public List<string> GetPrimaries(DbLinkEntity? link, string tableName)
|
||||
|
||||
public List<string> GetPrimaries(DbLinkEntity? link, string tableName)
|
||||
{
|
||||
if (link != null && _sqlSugarClient.CurrentConnectionConfig.ConfigId != link.Id) _sqlSugarClient = ChangeDataBase(link);
|
||||
if (link != null && _sqlSugarClient.CurrentConnectionConfig.ConfigId != link.Id)
|
||||
_sqlSugarClient = ChangeDataBase(link);
|
||||
|
||||
return _sqlSugarClient.DbMaintenance.GetPrimaries(tableName);
|
||||
var data = _sqlSugarClient.DbMaintenance.GetPrimaries(tableName);
|
||||
_sqlSugarClient.ChangeDatabase(_connectionStrings.ConfigId);
|
||||
return data;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -432,7 +477,9 @@ WHERE pcolumn.table_name='{0}' ORDER BY ordinal_position";
|
||||
{
|
||||
if (link != null && _sqlSugarClient.CurrentConnectionConfig.ConfigId != link.Id)
|
||||
_sqlSugarClient = ChangeDataBase(link);
|
||||
return _sqlSugarClient.Queryable<dynamic>().AS(tableName).ToDataTable();
|
||||
var data = _sqlSugarClient.Queryable<dynamic>().AS(tableName).ToDataTable();
|
||||
_sqlSugarClient.ChangeDatabase(_connectionStrings.ConfigId);
|
||||
return data;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -452,7 +499,37 @@ WHERE pcolumn.table_name='{0}' ORDER BY ordinal_position";
|
||||
if (_sqlSugarClient.CurrentConnectionConfig.DbType == SqlSugar.DbType.Oracle)
|
||||
strSql = strSql.Replace(";", string.Empty);
|
||||
|
||||
return _sqlSugarClient.Ado.GetDataTable(strSql, parameters);
|
||||
var data = _sqlSugarClient.Ado.GetDataTable(strSql, parameters);
|
||||
_sqlSugarClient.ChangeDatabase(_connectionStrings.ConfigId);
|
||||
return data;
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
|
||||
throw Oops.Oh(ErrorCode.D1511);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 根据链接获取数据.
|
||||
/// </summary>
|
||||
/// <param name="link">数据连接.</param>
|
||||
/// <param name="strSql">sql语句.</param>
|
||||
/// <param name="parameters">参数.</param>
|
||||
/// <returns></returns>
|
||||
public DataTable GetInterFaceDataCopyNew(DbLinkEntity link, string strSql, params SugarParameter[] parameters)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (link != null && _sqlSugarClient.CurrentConnectionConfig.ConfigId != link.Id)
|
||||
_sqlSugarClient = ChangeDataBase(link);
|
||||
|
||||
if (_sqlSugarClient.CurrentConnectionConfig.DbType == SqlSugar.DbType.Oracle)
|
||||
strSql = strSql.Replace(";", string.Empty);
|
||||
|
||||
var data = _sqlSugarClient.CopyNew().Ado.GetDataTable(strSql, parameters);
|
||||
_sqlSugarClient.ChangeDatabase(_connectionStrings.ConfigId);
|
||||
return data;
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
@@ -475,7 +552,9 @@ WHERE pcolumn.table_name='{0}' ORDER BY ordinal_position";
|
||||
if (_sqlSugarClient.CurrentConnectionConfig.DbType == SqlSugar.DbType.Oracle)
|
||||
strSql = strSql.Replace(";", string.Empty);
|
||||
|
||||
_sqlSugarClient.Ado.ExecuteCommand(strSql, parameters);
|
||||
_sqlSugarClient.CopyNew().Ado.ExecuteCommand(strSql, parameters);
|
||||
|
||||
_sqlSugarClient.ChangeDatabase(_connectionStrings.ConfigId);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -498,6 +577,8 @@ WHERE pcolumn.table_name='{0}' ORDER BY ordinal_position";
|
||||
|
||||
data.tableFieldList = ViewDataTypeConversion(data.tableFieldList, _sqlSugarClient.CurrentConnectionConfig.DbType);
|
||||
|
||||
_sqlSugarClient.ChangeDatabase(_connectionStrings.ConfigId);
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
@@ -516,6 +597,7 @@ WHERE pcolumn.table_name='{0}' ORDER BY ordinal_position";
|
||||
//var modelList = _sqlSugarClient.Ado.SqlQuery<DynamicDbTableModel>(sql).ToList();
|
||||
var modelList = _sqlSugarClient.Ado.SqlQuery<DatabaseTableListOutput>(sql).ToList();
|
||||
//return modelList.Select(x => new DatabaseTableListOutput { table = x.F_TABLE, tableName = x.F_TABLENAME, sum = x.F_SUM.ParseToInt() }).ToList();
|
||||
_sqlSugarClient.ChangeDatabase(_connectionStrings.ConfigId);
|
||||
return modelList;
|
||||
}
|
||||
|
||||
@@ -529,7 +611,9 @@ WHERE pcolumn.table_name='{0}' ORDER BY ordinal_position";
|
||||
if (link != null && _sqlSugarClient.CurrentConnectionConfig.ConfigId != link.Id)
|
||||
_sqlSugarClient = ChangeDataBase(link);
|
||||
|
||||
return _sqlSugarClient.DbMaintenance.GetTableInfoList(false);
|
||||
var data = _sqlSugarClient.DbMaintenance.GetTableInfoList(false);
|
||||
_sqlSugarClient.ChangeDatabase(_connectionStrings.ConfigId);
|
||||
return data;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -547,8 +631,7 @@ WHERE pcolumn.table_name='{0}' ORDER BY ordinal_position";
|
||||
|
||||
RefAsync<int> totalNumber = 0;
|
||||
var list = await _sqlSugarClient.SqlQueryable<object>(dbSql).ToDataTablePageAsync(pageIndex, pageSize, totalNumber);
|
||||
|
||||
return PageResult<dynamic>.SqlSugarPageResult(new SqlSugarPagedList<dynamic>()
|
||||
var data = PageResult<dynamic>.SqlSugarPageResult(new SqlSugarPagedList<dynamic>()
|
||||
{
|
||||
list = ToDynamicList(list),
|
||||
pagination = new Pagination()
|
||||
@@ -558,6 +641,8 @@ WHERE pcolumn.table_name='{0}' ORDER BY ordinal_position";
|
||||
Total = totalNumber
|
||||
}
|
||||
});
|
||||
_sqlSugarClient.ChangeDatabase(_connectionStrings.ConfigId);
|
||||
return data;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -573,7 +658,9 @@ WHERE pcolumn.table_name='{0}' ORDER BY ordinal_position";
|
||||
if (link != null && _sqlSugarClient.CurrentConnectionConfig.ConfigId != link.Id)
|
||||
_sqlSugarClient = ChangeDataBase(link);
|
||||
|
||||
return await _sqlSugarClient.Queryable<TEntity>().ToPageListAsync(pageIndex, pageSize);
|
||||
var data = await _sqlSugarClient.Queryable<TEntity>().ToPageListAsync(pageIndex, pageSize);
|
||||
_sqlSugarClient.ChangeDatabase(_connectionStrings.ConfigId);
|
||||
return data;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -590,6 +677,7 @@ WHERE pcolumn.table_name='{0}' ORDER BY ordinal_position";
|
||||
|
||||
List<Dictionary<string, object>> dc = _sqlSugarClient.Utilities.DataTableToDictionaryList(dt); // 5.0.23版本支持
|
||||
var isOk = await _sqlSugarClient.Insertable(dc).AS(table).ExecuteCommandAsync();
|
||||
_sqlSugarClient.ChangeDatabase(_connectionStrings.ConfigId);
|
||||
return isOk > 0;
|
||||
}
|
||||
|
||||
@@ -626,6 +714,7 @@ WHERE pcolumn.table_name='{0}' ORDER BY ordinal_position";
|
||||
}
|
||||
break;
|
||||
}
|
||||
_sqlSugarClient.ChangeDatabase(_connectionStrings.ConfigId);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
@@ -658,9 +747,15 @@ WHERE pcolumn.table_name='{0}' ORDER BY ordinal_position";
|
||||
_sqlSugarClient = ChangeDataBase(link);
|
||||
|
||||
if (_sqlSugarClient.Ado.IsValidConnection())
|
||||
{
|
||||
_sqlSugarClient.ChangeDatabase(_connectionStrings.ConfigId);
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
_sqlSugarClient.ChangeDatabase(_connectionStrings.ConfigId);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -15,255 +15,272 @@ namespace JNPF.Common.Core.Manager;
|
||||
/// </summary>
|
||||
public interface IDataBaseManager
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取多租户Link.
|
||||
/// </summary>
|
||||
/// <param name="tenantId">租户ID.</param>
|
||||
/// <param name="tenantName">租户数据库.</param>
|
||||
/// <returns>租户的DBLink实体对象.</returns>
|
||||
DbLinkEntity GetTenantDbLink(string tenantId, string tenantName);
|
||||
/// <summary>
|
||||
/// 获取多租户Link.
|
||||
/// </summary>
|
||||
/// <param name="tenantId">租户ID.</param>
|
||||
/// <param name="tenantName">租户数据库.</param>
|
||||
/// <returns>租户的DBLink实体对象.</returns>
|
||||
DbLinkEntity GetTenantDbLink(string tenantId, string tenantName);
|
||||
|
||||
/// <summary>
|
||||
/// 数据库切换.
|
||||
/// </summary>
|
||||
/// <param name="link">数据连接.</param>
|
||||
/// <returns>切库后的SqlSugarClient.</returns>
|
||||
SqlSugarScope ChangeDataBase(DbLinkEntity link);
|
||||
/// <summary>
|
||||
/// 数据库切换.
|
||||
/// </summary>
|
||||
/// <param name="link">数据连接.</param>
|
||||
/// <returns>切库后的SqlSugarClient.</returns>
|
||||
SqlSugarScope ChangeDataBase(DbLinkEntity link);
|
||||
|
||||
/// <summary>
|
||||
/// 执行Sql(查询).
|
||||
/// </summary>
|
||||
/// <param name="link">数据连接.</param>
|
||||
/// <param name="strSql">sql语句.</param>
|
||||
/// <returns></returns>
|
||||
Task<int> ExecuteSql(DbLinkEntity link, string strSql);
|
||||
/// <summary>
|
||||
/// 执行Sql(查询).
|
||||
/// </summary>
|
||||
/// <param name="link">数据连接.</param>
|
||||
/// <param name="strSql">sql语句.</param>
|
||||
/// <returns></returns>
|
||||
Task<int> ExecuteSql(DbLinkEntity link, string strSql);
|
||||
|
||||
/// <summary>
|
||||
/// 条件动态过滤.
|
||||
/// </summary>
|
||||
/// <param name="link">数据连接.</param>
|
||||
/// <param name="strSql">sql语句.</param>
|
||||
/// <returns>条件是否成立.</returns>
|
||||
bool WhereDynamicFilter(DbLinkEntity link, string strSql);
|
||||
/// <summary>
|
||||
/// 条件动态过滤.
|
||||
/// </summary>
|
||||
/// <param name="link">数据连接.</param>
|
||||
/// <param name="strSql">sql语句.</param>
|
||||
/// <returns>条件是否成立.</returns>
|
||||
bool WhereDynamicFilter(DbLinkEntity link, string strSql);
|
||||
|
||||
/// <summary>
|
||||
/// 执行Sql(新增、修改).
|
||||
/// </summary>
|
||||
/// <param name="link">数据连接.</param>
|
||||
/// <param name="table">表名.</param>
|
||||
/// <param name="dicList">数据.</param>
|
||||
/// <param name="primaryField">主键字段.</param>
|
||||
/// <returns></returns>
|
||||
Task<int> ExecuteSql(DbLinkEntity link, string table, List<Dictionary<string, object>> dicList, string primaryField = "");
|
||||
/// <summary>
|
||||
/// 执行Sql(新增、修改).
|
||||
/// </summary>
|
||||
/// <param name="link">数据连接.</param>
|
||||
/// <param name="table">表名.</param>
|
||||
/// <param name="dicList">数据.</param>
|
||||
/// <param name="primaryField">主键字段.</param>
|
||||
/// <returns></returns>
|
||||
Task<int> ExecuteSql(DbLinkEntity link, string table, List<Dictionary<string, object>> dicList, string primaryField = "");
|
||||
|
||||
/// <summary>
|
||||
/// 执行Sql 新增 并返回自增长Id.
|
||||
/// </summary>
|
||||
/// <param name="link">数据连接.</param>
|
||||
/// <param name="table">表名.</param>
|
||||
/// <param name="dicList">数据.</param>
|
||||
/// <param name="primaryField">主键字段.</param>
|
||||
/// <returns></returns>
|
||||
Task<int> ExecuteReturnIdentityAsync(DbLinkEntity link, string table, List<Dictionary<string, object>> dicList, string primaryField = "");
|
||||
/// <summary>
|
||||
/// 执行Sql 新增 并返回自增长Id.
|
||||
/// </summary>
|
||||
/// <param name="link">数据连接.</param>
|
||||
/// <param name="table">表名.</param>
|
||||
/// <param name="dicList">数据.</param>
|
||||
/// <param name="primaryField">主键字段.</param>
|
||||
/// <returns></returns>
|
||||
Task<int> ExecuteReturnIdentityAsync(DbLinkEntity link, string table, List<Dictionary<string, object>> dicList, string primaryField = "");
|
||||
|
||||
/// <summary>
|
||||
/// 创建表.
|
||||
/// </summary>
|
||||
/// <param name="link">数据连接.</param>
|
||||
/// <param name="tableModel">表对象.</param>
|
||||
/// <param name="tableFieldList">字段对象.</param>
|
||||
/// <returns></returns>
|
||||
Task<bool> Create(DbLinkEntity link, DbTableModel tableModel, List<DbTableFieldModel> tableFieldList);
|
||||
/// <summary>
|
||||
/// 创建表.
|
||||
/// </summary>
|
||||
/// <param name="link">数据连接.</param>
|
||||
/// <param name="tableModel">表对象.</param>
|
||||
/// <param name="tableFieldList">字段对象.</param>
|
||||
/// <returns></returns>
|
||||
Task<bool> Create(DbLinkEntity link, DbTableModel tableModel, List<DbTableFieldModel> tableFieldList);
|
||||
|
||||
/// <summary>
|
||||
/// sqlsugar添加表字段.
|
||||
/// </summary>
|
||||
/// <param name="tableName">表名.</param>
|
||||
/// <param name="tableFieldList">表字段集合.</param>
|
||||
void AddTableColumn(DbLinkEntity link, string tableName, List<DbTableFieldModel> tableFieldList);
|
||||
/// <summary>
|
||||
/// sqlsugar添加表字段.
|
||||
/// </summary>
|
||||
/// <param name="tableName">表名.</param>
|
||||
/// <param name="tableFieldList">表字段集合.</param>
|
||||
void AddTableColumn(DbLinkEntity link ,string tableName, List<DbTableFieldModel> tableFieldList);
|
||||
|
||||
/// <summary>
|
||||
/// 删除表.
|
||||
/// </summary>
|
||||
/// <param name="link">数据连接.</param>
|
||||
/// <param name="table">表名.</param>
|
||||
/// <returns></returns>
|
||||
bool Delete(DbLinkEntity link, string table);
|
||||
/// <summary>
|
||||
/// 删除表.
|
||||
/// </summary>
|
||||
/// <param name="link">数据连接.</param>
|
||||
/// <param name="table">表名.</param>
|
||||
/// <returns></returns>
|
||||
bool Delete(DbLinkEntity link, string table);
|
||||
|
||||
/// <summary>
|
||||
/// 修改表.
|
||||
/// </summary>
|
||||
/// <param name="link">数据连接.</param>
|
||||
/// <param name="oldTable">旧表名称.</param>
|
||||
/// <param name="tableModel">表对象.</param>
|
||||
/// <param name="tableFieldList">字段对象.</param>
|
||||
/// <returns></returns>
|
||||
Task<bool> Update(DbLinkEntity link, string oldTable, DbTableModel tableModel, List<DbTableFieldModel> tableFieldList);
|
||||
/// <summary>
|
||||
/// 修改表.
|
||||
/// </summary>
|
||||
/// <param name="link">数据连接.</param>
|
||||
/// <param name="oldTable">旧表名称.</param>
|
||||
/// <param name="tableModel">表对象.</param>
|
||||
/// <param name="tableFieldList">字段对象.</param>
|
||||
/// <returns></returns>
|
||||
Task<bool> Update(DbLinkEntity link, string oldTable, DbTableModel tableModel, List<DbTableFieldModel> tableFieldList);
|
||||
|
||||
/// <summary>
|
||||
/// 根据链接获取分页数据.
|
||||
/// </summary>
|
||||
/// <param name="link">数据连接.</param>
|
||||
/// <param name="strSql">Sql语句.</param>
|
||||
/// <param name="pageInput">页数.</param>
|
||||
/// <param name="columnDesign">列配置.</param>
|
||||
/// <param name="dataPermissions">数据权限.</param>
|
||||
/// <param name="outColumnName">输出列名称.</param>
|
||||
/// <returns></returns>
|
||||
PageResult<Dictionary<string, object>> GetInterFaceData(DbLinkEntity link, string strSql, VisualDevModelListQueryInput pageInput, MainBeltViceQueryModel columnDesign, List<IConditionalModel> dataPermissions, Dictionary<string, string> outColumnName = null);
|
||||
/// <summary>
|
||||
/// 根据链接获取分页数据.
|
||||
/// </summary>
|
||||
/// <param name="link">数据连接.</param>
|
||||
/// <param name="strSql">Sql语句.</param>
|
||||
/// <param name="pageInput">页数.</param>
|
||||
/// <param name="columnDesign">列配置.</param>
|
||||
/// <param name="dataPermissions">数据权限.</param>
|
||||
/// <param name="outColumnName">输出列名称.</param>
|
||||
/// <returns></returns>
|
||||
PageResult<Dictionary<string, object>> GetInterFaceData(DbLinkEntity link, string strSql, VisualDevModelListQueryInput pageInput, MainBeltViceQueryModel columnDesign, List<IConditionalModel> dataPermissions, Dictionary<string, string> outColumnName = null);
|
||||
|
||||
/// <summary>
|
||||
/// 表是否存在.
|
||||
/// </summary>
|
||||
/// <param name="link">数据连接.</param>
|
||||
/// <param name="table">表名.</param>
|
||||
/// <returns></returns>
|
||||
bool IsAnyTable(DbLinkEntity link, string table);
|
||||
/// <summary>
|
||||
/// 表是否存在.
|
||||
/// </summary>
|
||||
/// <param name="link">数据连接.</param>
|
||||
/// <param name="table">表名.</param>
|
||||
/// <returns></returns>
|
||||
bool IsAnyTable(DbLinkEntity link, string table);
|
||||
|
||||
/// <summary>
|
||||
/// 表字段是否存在.
|
||||
/// </summary>
|
||||
/// <param name="link">数据连接.</param>
|
||||
/// <param name="table">表名.</param>
|
||||
/// <param name="column">表字段名.</param>
|
||||
/// <returns></returns>
|
||||
bool IsAnyColumn(DbLinkEntity link, string table, string column);
|
||||
/// <summary>
|
||||
/// 表是否存在数据.
|
||||
/// </summary>
|
||||
/// <param name="link">数据连接.</param>
|
||||
/// <param name="table">表名.</param>
|
||||
/// <returns></returns>
|
||||
bool IsAnyData(DbLinkEntity link, string table);
|
||||
|
||||
/// <summary>
|
||||
/// 获取表字段列表.
|
||||
/// </summary>
|
||||
/// <param name="link">数据连接.</param>
|
||||
/// <param name="tableName">表名.</param>
|
||||
/// <returns></returns>
|
||||
List<DbTableFieldModel> GetFieldList(DbLinkEntity? link, string? tableName);
|
||||
/// <summary>
|
||||
/// 表字段是否存在.
|
||||
/// </summary>
|
||||
/// <param name="link">数据连接.</param>
|
||||
/// <param name="table">表名.</param>
|
||||
/// <param name="column">表字段名.</param>
|
||||
/// <returns></returns>
|
||||
bool IsAnyColumn(DbLinkEntity link, string table, string column);
|
||||
|
||||
/// <summary>
|
||||
/// 获取表的主键
|
||||
/// </summary>
|
||||
/// <param name="link"></param>
|
||||
/// <param name="tableName"></param>
|
||||
/// <returns></returns>
|
||||
List<string> GetPrimaries(DbLinkEntity? link, string tableName);
|
||||
/// <summary>
|
||||
/// 获取表字段列表.
|
||||
/// </summary>
|
||||
/// <param name="link">数据连接.</param>
|
||||
/// <param name="tableName">表名.</param>
|
||||
/// <returns></returns>
|
||||
List<DbTableFieldModel> GetFieldList(DbLinkEntity? link, string? tableName);
|
||||
|
||||
/// <summary>
|
||||
/// 获取表数据.
|
||||
/// </summary>
|
||||
/// <param name="link">数据连接.</param>
|
||||
/// <param name="tableName">表名.</param>
|
||||
/// <returns></returns>
|
||||
DataTable GetData(DbLinkEntity link, string tableName);
|
||||
/// <summary>
|
||||
/// 获取表数据.
|
||||
/// </summary>
|
||||
/// <param name="link">数据连接.</param>
|
||||
/// <param name="tableName">表名.</param>
|
||||
/// <returns></returns>
|
||||
DataTable GetData(DbLinkEntity link, string tableName);
|
||||
|
||||
/// <summary>
|
||||
/// 根据链接获取数据.
|
||||
/// </summary>
|
||||
/// <param name="link">数据连接.</param>
|
||||
/// <param name="strSql">Sql语句.</param>
|
||||
/// <param name="parameters">参数.</param>
|
||||
/// <returns></returns>
|
||||
DataTable GetInterFaceData(DbLinkEntity link, string strSql, params SugarParameter[] parameters);
|
||||
/// <summary>
|
||||
/// 根据链接获取数据.
|
||||
/// </summary>
|
||||
/// <param name="link">数据连接.</param>
|
||||
/// <param name="strSql">Sql语句.</param>
|
||||
/// <param name="parameters">参数.</param>
|
||||
/// <returns></returns>
|
||||
DataTable GetInterFaceData(DbLinkEntity link, string strSql, params SugarParameter[] parameters);
|
||||
|
||||
/// <summary>
|
||||
/// 获取表信息.
|
||||
/// </summary>
|
||||
/// <param name="link">数据连接.</param>
|
||||
/// <param name="tableName">表名.</param>
|
||||
/// <returns></returns>
|
||||
DatabaseTableInfoOutput GetDataBaseTableInfo(DbLinkEntity link, string tableName);
|
||||
/// <summary>
|
||||
/// 根据链接获取数据.
|
||||
/// </summary>
|
||||
/// <param name="link">数据连接.</param>
|
||||
/// <param name="strSql">sql语句.</param>
|
||||
/// <param name="parameters">参数.</param>
|
||||
/// <returns></returns>
|
||||
public DataTable GetInterFaceDataCopyNew(DbLinkEntity link, string strSql, params SugarParameter[] parameters);
|
||||
|
||||
/// <summary>
|
||||
/// 获取数据库表信息.
|
||||
/// </summary>
|
||||
/// <param name="link">数据连接.</param>
|
||||
/// <returns></returns>
|
||||
List<DatabaseTableListOutput> GetDBTableList(DbLinkEntity link);
|
||||
/// <summary>
|
||||
/// 获取表信息.
|
||||
/// </summary>
|
||||
/// <param name="link">数据连接.</param>
|
||||
/// <param name="tableName">表名.</param>
|
||||
/// <returns></returns>
|
||||
DatabaseTableInfoOutput GetDataBaseTableInfo(DbLinkEntity link, string tableName);
|
||||
|
||||
/// <summary>
|
||||
/// 获取数据库表信息.
|
||||
/// </summary>
|
||||
/// <param name="link">数据连接.</param>
|
||||
/// <returns></returns>
|
||||
List<DbTableInfo> GetTableInfos(DbLinkEntity link);
|
||||
/// <summary>
|
||||
/// 获取数据库表信息.
|
||||
/// </summary>
|
||||
/// <param name="link">数据连接.</param>
|
||||
/// <returns></returns>
|
||||
List<DatabaseTableListOutput> GetDBTableList(DbLinkEntity link);
|
||||
|
||||
/// <summary>
|
||||
/// 获取数据表分页(SQL语句).
|
||||
/// </summary>
|
||||
/// <param name="link">数据连接.</param>
|
||||
/// <param name="dbSql">数据SQL.</param>
|
||||
/// <param name="pageIndex">页数.</param>
|
||||
/// <param name="pageSize">条数.</param>
|
||||
/// <returns></returns>
|
||||
Task<dynamic> GetDataTablePage(DbLinkEntity link, string dbSql, int pageIndex, int pageSize);
|
||||
/// <summary>
|
||||
/// 获取数据库表信息.
|
||||
/// </summary>
|
||||
/// <param name="link">数据连接.</param>
|
||||
/// <returns></returns>
|
||||
List<DbTableInfo> GetTableInfos(DbLinkEntity link);
|
||||
|
||||
/// <summary>
|
||||
/// 获取数据表分页(实体).
|
||||
/// </summary>
|
||||
/// <typeparam name="TEntity">T.</typeparam>
|
||||
/// <param name="link">数据连接.</param>
|
||||
/// <param name="pageIndex">页数.</param>
|
||||
/// <param name="pageSize">条数.</param>
|
||||
/// <returns></returns>
|
||||
Task<List<TEntity>> GetDataTablePage<TEntity>(DbLinkEntity link, int pageIndex, int pageSize);
|
||||
/// <summary>
|
||||
/// 获取数据表分页(SQL语句).
|
||||
/// </summary>
|
||||
/// <param name="link">数据连接.</param>
|
||||
/// <param name="dbSql">数据SQL.</param>
|
||||
/// <param name="pageIndex">页数.</param>
|
||||
/// <param name="pageSize">条数.</param>
|
||||
/// <returns></returns>
|
||||
Task<dynamic> GetDataTablePage(DbLinkEntity link, string dbSql, int pageIndex, int pageSize);
|
||||
|
||||
/// <summary>
|
||||
/// 使用存储过程.
|
||||
/// </summary>
|
||||
/// <param name="link">数据连接.</param>
|
||||
/// <param name="stored">存储过程名称.</param>
|
||||
/// <param name="parameters">参数.</param>
|
||||
void UseStoredProcedure(DbLinkEntity link, string stored, List<SugarParameter> parameters);
|
||||
/// <summary>
|
||||
/// 获取数据表分页(实体).
|
||||
/// </summary>
|
||||
/// <typeparam name="TEntity">T.</typeparam>
|
||||
/// <param name="link">数据连接.</param>
|
||||
/// <param name="pageIndex">页数.</param>
|
||||
/// <param name="pageSize">条数.</param>
|
||||
/// <returns></returns>
|
||||
Task<List<TEntity>> GetDataTablePage<TEntity>(DbLinkEntity link, int pageIndex, int pageSize);
|
||||
|
||||
/// <summary>
|
||||
/// 测试数据库连接.
|
||||
/// </summary>
|
||||
/// <param name="link">数据连接.</param>
|
||||
/// <returns></returns>
|
||||
bool IsConnection(DbLinkEntity link);
|
||||
/// <summary>
|
||||
/// 使用存储过程.
|
||||
/// </summary>
|
||||
/// <param name="link">数据连接.</param>
|
||||
/// <param name="stored">存储过程名称.</param>
|
||||
/// <param name="parameters">参数.</param>
|
||||
void UseStoredProcedure(DbLinkEntity link, string stored, List<SugarParameter> parameters);
|
||||
|
||||
/// <summary>
|
||||
/// 同步数据.
|
||||
/// </summary>
|
||||
/// <param name="link">数据连接.</param>
|
||||
/// <param name="dt">同步数据.</param>
|
||||
/// <param name="table">表.</param>
|
||||
/// <returns></returns>
|
||||
Task<bool> SyncData(DbLinkEntity link, DataTable dt, string table);
|
||||
/// <summary>
|
||||
/// 测试数据库连接.
|
||||
/// </summary>
|
||||
/// <param name="link">数据连接.</param>
|
||||
/// <returns></returns>
|
||||
bool IsConnection(DbLinkEntity link);
|
||||
|
||||
/// <summary>
|
||||
/// 同步表操作.
|
||||
/// </summary>
|
||||
/// <param name="linkFrom">原数据库.</param>
|
||||
/// <param name="linkTo">目前数据库.</param>
|
||||
/// <param name="table">表名称.</param>
|
||||
/// <param name="type">操作类型.</param>
|
||||
/// <param name="fieldType">数据类型.</param>
|
||||
void SyncTable(DbLinkEntity linkFrom, DbLinkEntity linkTo, string table, int type, Dictionary<string, string> fieldType);
|
||||
/// <summary>
|
||||
/// 同步数据.
|
||||
/// </summary>
|
||||
/// <param name="link">数据连接.</param>
|
||||
/// <param name="dt">同步数据.</param>
|
||||
/// <param name="table">表.</param>
|
||||
/// <returns></returns>
|
||||
Task<bool> SyncData(DbLinkEntity link, DataTable dt, string table);
|
||||
|
||||
/// <summary>
|
||||
/// 视图数据类型转换.
|
||||
/// </summary>
|
||||
/// <param name="fields">字段数据.</param>
|
||||
/// <param name="databaseType">数据库类型.</param>
|
||||
List<TableFieldOutput> ViewDataTypeConversion(List<TableFieldOutput> fields, SqlSugar.DbType databaseType);
|
||||
/// <summary>
|
||||
/// 同步表操作.
|
||||
/// </summary>
|
||||
/// <param name="linkFrom">原数据库.</param>
|
||||
/// <param name="linkTo">目前数据库.</param>
|
||||
/// <param name="table">表名称.</param>
|
||||
/// <param name="type">操作类型.</param>
|
||||
/// <param name="fieldType">数据类型.</param>
|
||||
void SyncTable(DbLinkEntity linkFrom, DbLinkEntity linkTo, string table, int type, Dictionary<string, string> fieldType);
|
||||
|
||||
/// <summary>
|
||||
/// 转换数据库类型.
|
||||
/// </summary>
|
||||
/// <param name="dbType">数据库类型.</param>
|
||||
/// <returns></returns>
|
||||
SqlSugar.DbType ToDbType(string dbType);
|
||||
/// <summary>
|
||||
/// 视图数据类型转换.
|
||||
/// </summary>
|
||||
/// <param name="fields">字段数据.</param>
|
||||
/// <param name="databaseType">数据库类型.</param>
|
||||
List<TableFieldOutput> ViewDataTypeConversion(List<TableFieldOutput> fields, SqlSugar.DbType databaseType);
|
||||
|
||||
/// <summary>
|
||||
/// 转换连接字符串.
|
||||
/// </summary>
|
||||
/// <param name="dbLinkEntity">数据连接.</param>
|
||||
/// <returns></returns>
|
||||
string ToConnectionString(DbLinkEntity dbLinkEntity);
|
||||
/// <summary>
|
||||
/// 转换数据库类型.
|
||||
/// </summary>
|
||||
/// <param name="dbType">数据库类型.</param>
|
||||
/// <returns></returns>
|
||||
SqlSugar.DbType ToDbType(string dbType);
|
||||
|
||||
/// <summary>
|
||||
/// 执行增删改sql.
|
||||
/// </summary>
|
||||
/// <param name="link">数据连接.</param>
|
||||
/// <param name="strSql">sql语句.</param>
|
||||
/// <param name="parameters">参数.</param>
|
||||
void ExecuteCommand(DbLinkEntity link, string strSql, params SugarParameter[] parameters);
|
||||
/// <summary>
|
||||
/// 转换连接字符串.
|
||||
/// </summary>
|
||||
/// <param name="dbLinkEntity">数据连接.</param>
|
||||
/// <returns></returns>
|
||||
string ToConnectionString(DbLinkEntity dbLinkEntity);
|
||||
|
||||
/// <summary>
|
||||
/// 执行增删改sql.
|
||||
/// </summary>
|
||||
/// <param name="link">数据连接.</param>
|
||||
/// <param name="strSql">sql语句.</param>
|
||||
/// <param name="parameters">参数.</param>
|
||||
void ExecuteCommand(DbLinkEntity link, string strSql, params SugarParameter[] parameters);
|
||||
|
||||
/// <summary>
|
||||
/// 获取表的主键
|
||||
/// </summary>
|
||||
/// <param name="link"></param>
|
||||
/// <param name="tableName"></param>
|
||||
/// <returns></returns>
|
||||
List<string> GetPrimaries(DbLinkEntity? link, string tableName);
|
||||
}
|
||||
Reference in New Issue
Block a user