Update Insertable.UseParameter

This commit is contained in:
sunkaixuna
2021-08-05 00:07:24 +08:00
parent 59d7825048
commit 32cd9fcd89
4 changed files with 25 additions and 3 deletions

View File

@@ -36,6 +36,8 @@ namespace OrmTest
new Order() { Id = 12, Name = "order12" , Price=0} new Order() { Id = 12, Name = "order12" , Price=0}
}; };
db.Insertable(insertObjs).RemoveDataCache().IgnoreColumns(it=>it.CreateTime).UseParameter().ExecuteCommand();
//Ignore CreateTime //Ignore CreateTime
db.Insertable(insertObj).IgnoreColumns(it => new { it.CreateTime }).ExecuteReturnIdentity();//get identity db.Insertable(insertObj).IgnoreColumns(it => new { it.CreateTime }).ExecuteReturnIdentity();//get identity
db.Insertable(insertObj).IgnoreColumns("CreateTime").ExecuteReturnIdentity(); db.Insertable(insertObj).IgnoreColumns("CreateTime").ExecuteReturnIdentity();

View File

@@ -29,7 +29,7 @@ namespace SqlSugar
public bool IsAs { get; set; } public bool IsAs { get; set; }
public bool IsEnableDiffLogEvent { get; set; } public bool IsEnableDiffLogEvent { get; set; }
public DiffLogModel diffModel { get; set; } public DiffLogModel diffModel { get; set; }
private Action RemoveCacheFunc { get; set; } internal Action RemoveCacheFunc { get; set; }
#region Core #region Core
@@ -229,6 +229,7 @@ namespace SqlSugar
public IParameterInsertable<T> UseParameter() public IParameterInsertable<T> UseParameter()
{ {
var result = new ParameterInsertable<T>(); var result = new ParameterInsertable<T>();
result.Context= this.Context;
result.Inserable = this; result.Inserable = this;
return result; return result;
} }

View File

@@ -8,9 +8,28 @@ namespace SqlSugar
{ {
public class ParameterInsertable<T> : IParameterInsertable<T> where T:class,new() public class ParameterInsertable<T> : IParameterInsertable<T> where T:class,new()
{ {
public InsertableProvider<T> Inserable { get; set; } internal IInsertable<T> Inserable { get; set; }
internal SqlSugarProvider Context { get; set; }
public int ExecuteCommand() public int ExecuteCommand()
{ {
int result = 0;
var inserable = Inserable as InsertableProvider<T>;
var columns= inserable.InsertBuilder.DbColumnInfoList.GroupBy(it => it.DbColumnName).Select(it=>it.Key).Distinct().ToList();
var tableWithString = inserable.InsertBuilder.TableWithString;
var removeCacheFunc = inserable.RemoveCacheFunc;
var objects = inserable.InsertObjs;
this.Context.Utilities.PageEach(objects, 60, pagelist =>
{
foreach (var item in pagelist)
{
var itemable = this.Context.Insertable(item);
itemable.InsertBuilder.DbColumnInfoList = itemable.InsertBuilder.DbColumnInfoList.Where(it => columns.Contains(it.DbColumnName)).ToList();
itemable.InsertBuilder.TableWithString = tableWithString;
(itemable as InsertableProvider<T>).RemoveCacheFunc = removeCacheFunc;
itemable.AddQueue();
}
result+=this.Context.SaveQueues(false);
});
return 0; return 0;
} }
} }

View File

@@ -2,6 +2,6 @@
{ {
public interface IParameterInsertable<T> public interface IParameterInsertable<T>
{ {
InsertableProvider<T> Inserable { get; set; } int ExecuteCommand();
} }
} }