mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-10-27 03:09:34 +08:00
Update Insertable.UseParameter
This commit is contained in:
@@ -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();
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,6 @@
|
|||||||
{
|
{
|
||||||
public interface IParameterInsertable<T>
|
public interface IParameterInsertable<T>
|
||||||
{
|
{
|
||||||
InsertableProvider<T> Inserable { get; set; }
|
int ExecuteCommand();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user