Update split table

This commit is contained in:
sunkaixuan
2025-01-02 10:14:39 +08:00
parent 1d62b17a50
commit 89abb0f139
3 changed files with 13 additions and 1 deletions

View File

@@ -14,6 +14,10 @@ namespace SqlSugar
public EntityInfo EntityInfo { get { return this.Context.EntityMaintenance.GetEntityInfo<T>(); } } public EntityInfo EntityInfo { get { return this.Context.EntityMaintenance.GetEntityInfo<T>(); } }
public int BulkCopy(List<T> datas) public int BulkCopy(List<T> datas)
{ {
if (StaticConfig.SplitTableCreateTableFunc != null)
{
StaticConfig.SplitTableCreateTableFunc(typeof(T), datas?.Cast<object>()?.ToArray());
}
List<GroupModel> groupModels; List<GroupModel> groupModels;
int result; int result;
GroupDataList(datas, out groupModels, out result); GroupDataList(datas, out groupModels, out result);
@@ -28,6 +32,10 @@ namespace SqlSugar
} }
public async Task<int> BulkCopyAsync(List<T> datas) public async Task<int> BulkCopyAsync(List<T> datas)
{ {
if (StaticConfig.SplitTableCreateTableFunc != null)
{
StaticConfig.SplitTableCreateTableFunc(typeof(T), datas?.Cast<object>()?.ToArray());
}
List<GroupModel> groupModels; List<GroupModel> groupModels;
int result; int result;
GroupDataList(datas, out groupModels, out result); GroupDataList(datas, out groupModels, out result);

View File

@@ -763,6 +763,10 @@ namespace SqlSugar
public SplitInsertable<T> SplitTable() public SplitInsertable<T> SplitTable()
{ {
if (StaticConfig.SplitTableCreateTableFunc != null)
{
StaticConfig.SplitTableCreateTableFunc(typeof(T),this.InsertObjs);
}
UtilMethods.StartCustomSplitTable(this.Context, typeof(T)); UtilMethods.StartCustomSplitTable(this.Context, typeof(T));
var splitTableAttribute = typeof(T).GetCustomAttribute<SplitTableAttribute>(); var splitTableAttribute = typeof(T).GetCustomAttribute<SplitTableAttribute>();
if (splitTableAttribute != null) if (splitTableAttribute != null)

View File

@@ -29,7 +29,7 @@ namespace SqlSugar
public static Action<ISqlSugarClient> CompleteDbFunc; public static Action<ISqlSugarClient> CompleteDbFunc;
public static Func<List<SplitTableInfo>> SplitTableGetTablesFunc; public static Func<List<SplitTableInfo>> SplitTableGetTablesFunc;
public static Func<bool> SplitTableCreateTableFunc; public static Action<Type,object[]> SplitTableCreateTableFunc;
public static bool Check_StringIdentity = true; public static bool Check_StringIdentity = true;
public static bool EnableAllWhereIF = false; public static bool EnableAllWhereIF = false;