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}
|
||||
};
|
||||
|
||||
db.Insertable(insertObjs).RemoveDataCache().IgnoreColumns(it=>it.CreateTime).UseParameter().ExecuteCommand();
|
||||
|
||||
//Ignore CreateTime
|
||||
db.Insertable(insertObj).IgnoreColumns(it => new { it.CreateTime }).ExecuteReturnIdentity();//get identity
|
||||
db.Insertable(insertObj).IgnoreColumns("CreateTime").ExecuteReturnIdentity();
|
||||
|
||||
@@ -29,7 +29,7 @@ namespace SqlSugar
|
||||
public bool IsAs { get; set; }
|
||||
public bool IsEnableDiffLogEvent { get; set; }
|
||||
public DiffLogModel diffModel { get; set; }
|
||||
private Action RemoveCacheFunc { get; set; }
|
||||
internal Action RemoveCacheFunc { get; set; }
|
||||
|
||||
|
||||
#region Core
|
||||
@@ -229,6 +229,7 @@ namespace SqlSugar
|
||||
public IParameterInsertable<T> UseParameter()
|
||||
{
|
||||
var result = new ParameterInsertable<T>();
|
||||
result.Context= this.Context;
|
||||
result.Inserable = this;
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -8,9 +8,28 @@ namespace SqlSugar
|
||||
{
|
||||
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()
|
||||
{
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,6 +2,6 @@
|
||||
{
|
||||
public interface IParameterInsertable<T>
|
||||
{
|
||||
InsertableProvider<T> Inserable { get; set; }
|
||||
int ExecuteCommand();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user