Synchronization code

This commit is contained in:
sunkaixuan 2023-07-20 19:18:12 +08:00
parent 77411f0285
commit f00fb21d6f

View File

@ -15,7 +15,21 @@ namespace SqlSugar
public T[] UpdateObjects { get; set; }
public IEnumerable<SplitTableInfo> Tables { get; set; }
public int ExecuteCommandWithOptLock(bool isThrowError = false)
{
List<GroupModel> groupModels;
int result;
GroupDataList(UpdateObjects, out groupModels, out result);
foreach (var item in groupModels.GroupBy(it => it.GroupName))
{
var addList = item.Select(it => it.Item).ToList();
result += this.Context.Updateable(addList)
.UpdateColumns(updateobj.UpdateBuilder.UpdateColumns?.ToArray())
.IgnoreColumns(this.updateobj.UpdateBuilder.IsNoUpdateNull, this.updateobj.UpdateBuilder.IsOffIdentity, this.updateobj.UpdateBuilder.IsNoUpdateDefaultValue)
.IgnoreColumns(GetIgnoreColumns()).AS(item.Key).ExecuteCommandWithOptLock(isThrowError);
}
return result;
}
public int ExecuteCommand()
{
List<GroupModel> groupModels;
@ -48,6 +62,21 @@ namespace SqlSugar
}
return result;
}
public async Task<int> ExecuteCommandWithOptLockAsync(bool isThrowError = false)
{
List<GroupModel> groupModels;
int result;
GroupDataList(UpdateObjects, out groupModels, out result);
foreach (var item in groupModels.GroupBy(it => it.GroupName))
{
var addList = item.Select(it => it.Item).ToList();
result += await this.Context.Updateable(addList)
.UpdateColumns(updateobj.UpdateBuilder.UpdateColumns?.ToArray())
.IgnoreColumns(this.updateobj.UpdateBuilder.IsNoUpdateNull, this.updateobj.UpdateBuilder.IsOffIdentity, this.updateobj.UpdateBuilder.IsNoUpdateDefaultValue)
.IgnoreColumns(GetIgnoreColumns()).AS(item.Key).ExecuteCommandWithOptLockAsync(isThrowError);
}
return result;
}
private string [] GetIgnoreColumns()
{
if (this.updateobj.UpdateBuilder.DbColumnInfoList.Any())