feat: 优化orm 批量插入

This commit is contained in:
2248356998 qq.com
2025-10-09 19:19:18 +08:00
parent b1d8041f7e
commit 3e038028c2
3 changed files with 26 additions and 4 deletions

View File

@@ -171,11 +171,21 @@ namespace ThingsGateway.SqlSugar
else else
{ {
var count = list.FirstOrDefault().Value.Item2?.Count; var count = list.FirstOrDefault().Value.Item2?.Count;
if(count==1)
{
var row = list.GetRows(0).ToDictionary(a => a.ColumnName, a => a.Value);
cmd.CommandText = this.Context.InsertableT(row).AS(tableName).ToSqlString().Replace(";SELECT LAST_INSERT_ROWID();", "");
TransformInsertCommand(cmd);
i += await cmd.ExecuteNonQueryAsync().ConfigureAwait(false);
return i;
}
if (count > 0) if (count > 0)
{ {
var row = list.GetRows(0).ToDictionary(a => a.ColumnName, a => a.Value); var row = list.GetRows(0).ToDictionary(a => a.ColumnName, a => a.Value);
cmd.CommandText = this.Context.InsertableT(row).AS(tableName).ToSql().Key.Replace(";SELECT LAST_INSERT_ROWID();", ""); cmd.CommandText = this.Context.InsertableT(row).AS(tableName).ToSql().Key.Replace(";SELECT LAST_INSERT_ROWID();", "");
} }
TransformInsertCommand(cmd); TransformInsertCommand(cmd);
if (count > 0) if (count > 0)
{ {
@@ -292,6 +302,18 @@ namespace ThingsGateway.SqlSugar
else else
{ {
var count = list.FirstOrDefault().Value.Item2?.Count; var count = list.FirstOrDefault().Value.Item2?.Count;
if (count == 1)
{
var row = list.GetRows(0).ToDictionary(a => a.ColumnName, a => a.Value);
cmd.CommandText = this.Context.UpdateableT(row)
.WhereColumns(whereColumns)
.UpdateColumns(updateColumns)
.AS(tableName).ToSqlString();
i += await cmd.ExecuteNonQueryAsync().ConfigureAwait(false);
return i;
}
if (count > 0) if (count > 0)
{ {
var row = list.GetRows(0).ToDictionary(a => a.ColumnName, a => a.Value); var row = list.GetRows(0).ToDictionary(a => a.ColumnName, a => a.Value);

View File

@@ -31,7 +31,7 @@ namespace ThingsGateway.SqlSugar
{ {
// 单条插入 // 单条插入
var columnValues = string.Join(",", DbColumnInfoList.Select(it => var columnValues = string.Join(",", DbColumnInfoList.Select(it =>
base.GetDbColumn(it, Builder.SqlParameterKeyWord + it.DbColumnName))); base.GetDbColumn(it, $"{Builder.SqlParameterKeyWord}{it.DbColumnName}")));
ActionMinDate(); ActionMinDate();
return string.Format(SqlTemplate, GetTableNameString, columnNames, columnValues); return string.Format(SqlTemplate, GetTableNameString, columnNames, columnValues);

View File

@@ -1,9 +1,9 @@
<Project> <Project>
<PropertyGroup> <PropertyGroup>
<PluginVersion>10.11.85</PluginVersion> <PluginVersion>10.11.86</PluginVersion>
<ProPluginVersion>10.11.85</ProPluginVersion> <ProPluginVersion>10.11.86</ProPluginVersion>
<DefaultVersion>10.11.85</DefaultVersion> <DefaultVersion>10.11.86</DefaultVersion>
<AuthenticationVersion>10.11.6</AuthenticationVersion> <AuthenticationVersion>10.11.6</AuthenticationVersion>
<SourceGeneratorVersion>10.11.6</SourceGeneratorVersion> <SourceGeneratorVersion>10.11.6</SourceGeneratorVersion>
<NET8Version>8.0.20</NET8Version> <NET8Version>8.0.20</NET8Version>