mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-09-22 20:13:41 +08:00
Add Insertable.Page
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace SqlSugar
|
||||
{
|
||||
public class InsertablePage<T> where T:class,new()
|
||||
{
|
||||
public int PageSize { get; set; }
|
||||
public SqlSugarProvider Context { get; set; }
|
||||
public T[] DataList { get; set; }
|
||||
public string TableName { get; internal set; }
|
||||
public List<string> InsertColumns { get; internal set; }
|
||||
public bool IsEnableDiffLogEvent { get; internal set; }
|
||||
public DiffLogModel DiffModel { get; internal set; }
|
||||
|
||||
public int ExecuteCommand()
|
||||
{
|
||||
if (PageSize == 0) { PageSize = 1000; }
|
||||
var result = 0;
|
||||
this.Context.Utilities.PageEach(DataList, PageSize, pageItem =>
|
||||
{
|
||||
result += this.Context.Insertable(pageItem).AS(TableName).EnableDiffLogEventIF(IsEnableDiffLogEvent,DiffModel).InsertColumns(InsertColumns.ToArray()).ExecuteCommand();
|
||||
});
|
||||
return result;
|
||||
}
|
||||
public async Task<int> ExecuteCommandAsync()
|
||||
{
|
||||
if (PageSize == 0) { PageSize = 1000; }
|
||||
var result = 0;
|
||||
await this.Context.Utilities.PageEachAsync(DataList, PageSize,async pageItem =>
|
||||
{
|
||||
result += await this.Context.Insertable(pageItem).AS(TableName).EnableDiffLogEventIF(IsEnableDiffLogEvent, DiffModel).InsertColumns(InsertColumns.ToArray()).ExecuteCommandAsync();
|
||||
});
|
||||
return result;
|
||||
}
|
||||
|
||||
public List<long> ExecuteReturnSnowflakeIdList()
|
||||
{
|
||||
if (PageSize == 0) { PageSize = 1000; }
|
||||
var result = new List<long>();
|
||||
this.Context.Utilities.PageEach(DataList, PageSize, pageItem =>
|
||||
{
|
||||
result.AddRange( this.Context.Insertable(pageItem).AS(TableName).EnableDiffLogEventIF(IsEnableDiffLogEvent, DiffModel).InsertColumns(InsertColumns.ToArray()).ExecuteReturnSnowflakeIdList());
|
||||
});
|
||||
return result;
|
||||
}
|
||||
public async Task<List<long>> ExecuteReturnSnowflakeIdListAsync()
|
||||
{
|
||||
if (PageSize == 0) { PageSize = 1000; }
|
||||
var result = new List<long>();
|
||||
await this.Context.Utilities.PageEachAsync(DataList, PageSize,async pageItem =>
|
||||
{
|
||||
result.AddRange(await this.Context.Insertable(pageItem).AS(TableName).EnableDiffLogEventIF(IsEnableDiffLogEvent, DiffModel).InsertColumns(InsertColumns.ToArray()).ExecuteReturnSnowflakeIdListAsync());
|
||||
});
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
@@ -465,7 +465,18 @@ namespace SqlSugar
|
||||
#endregion
|
||||
|
||||
#region Setting
|
||||
|
||||
public InsertablePage<T> PageSize(int pageSize)
|
||||
{
|
||||
InsertablePage<T> result = new InsertablePage<T>();
|
||||
result.PageSize = pageSize;
|
||||
result.Context = this.Context;
|
||||
result.DataList = this.InsertObjs;
|
||||
result.TableName = this.InsertBuilder.AsName;
|
||||
result.IsEnableDiffLogEvent = this.IsEnableDiffLogEvent;
|
||||
result.DiffModel = this.diffModel;
|
||||
result.InsertColumns = this.InsertBuilder.DbColumnInfoList.GroupBy(it => it.TableId).First().Select(it=>it.DbColumnName).ToList();
|
||||
return result;
|
||||
}
|
||||
public IParameterInsertable<T> UseParameter()
|
||||
{
|
||||
var result = new ParameterInsertable<T>();
|
||||
|
@@ -62,5 +62,6 @@ namespace SqlSugar
|
||||
void AddQueue();
|
||||
IInsertable<T> MySqlIgnore();
|
||||
IInsertable<T> OffIdentity();
|
||||
InsertablePage<T> PageSize(int pageSize);
|
||||
}
|
||||
}
|
||||
|
@@ -120,6 +120,7 @@
|
||||
<Compile Include="Abstract\FastestProvider\Setting.cs" />
|
||||
<Compile Include="Abstract\FastestProvider\SplitFastest.cs" />
|
||||
<Compile Include="Abstract\FilterProvider\FilterProvider.cs" />
|
||||
<Compile Include="Abstract\InsertableProvider\InsertablePage.cs" />
|
||||
<Compile Include="Abstract\InsertableProvider\InsertableHelper.cs" />
|
||||
<Compile Include="Abstract\InsertableProvider\InsertMethodInfo.cs" />
|
||||
<Compile Include="Abstract\QueryableProvider\Entities\AppendNavInfoList.cs" />
|
||||
@@ -142,11 +143,13 @@
|
||||
<Compile Include="Abstract\QueryableProvider\QueryMethodInfo.cs" />
|
||||
<Compile Include="Abstract\SaveableProvider\StorageableMethodInfo.cs" />
|
||||
<Compile Include="Abstract\SaveableProvider\StorageableDataTable.cs" />
|
||||
<Compile Include="Abstract\SaveableProvider\StorageablePage.cs" />
|
||||
<Compile Include="Abstract\SaveableProvider\StorageableSplitProvider.cs" />
|
||||
<Compile Include="Abstract\SqlBuilderProvider\Entities.cs" />
|
||||
<Compile Include="Abstract\SqlBuilderProvider\SqlBuilderProvider_Condition.cs" />
|
||||
<Compile Include="Abstract\SugarProvider\SqlSugarCoreProvider.cs" />
|
||||
<Compile Include="Abstract\DeleteProvider\DeleteMethodInfo.cs" />
|
||||
<Compile Include="Abstract\UpdateProvider\UpdateablePage.cs" />
|
||||
<Compile Include="Abstract\UpdateProvider\UpdateableProviderT2.cs" />
|
||||
<Compile Include="Abstract\UpdateProvider\UpdateableProviderT3.cs" />
|
||||
<Compile Include="Abstract\UpdateProvider\UpdateableProviderT4.cs" />
|
||||
|
Reference in New Issue
Block a user