Update pgsql update.join

This commit is contained in:
sunkaixuan
2024-07-04 00:09:57 +08:00
parent 1e2d26207d
commit ae7b7d88d8
2 changed files with 4 additions and 3 deletions

View File

@@ -39,6 +39,7 @@ namespace SqlSugar
var SqlBuilder = UpdateBuilder.Builder; var SqlBuilder = UpdateBuilder.Builder;
foreach (var item in items) foreach (var item in items)
{ {
updateableObj.UpdateBuilder.LambdaExpressions.IsSingle = false;
var dbColumnName = updateableObj.UpdateBuilder.Context.EntityMaintenance.GetDbColumnName<T>(item.Key); var dbColumnName = updateableObj.UpdateBuilder.Context.EntityMaintenance.GetDbColumnName<T>(item.Key);
var value = updateableObj.UpdateBuilder.GetExpressionValue(ExpressionTool.RemoveConvert(item.Value), ResolveExpressType.WhereMultiple).GetString(); var value = updateableObj.UpdateBuilder.GetExpressionValue(ExpressionTool.RemoveConvert(item.Value), ResolveExpressType.WhereMultiple).GetString();
this.updateableObj.UpdateBuilder.SetValues.Add(new KeyValuePair<string, string>(dbColumnName, value)); this.updateableObj.UpdateBuilder.SetValues.Add(new KeyValuePair<string, string>(dbColumnName, value));

View File

@@ -239,7 +239,7 @@ namespace SqlSugar
{ {
if (this.JoinInfos?.Count > 1) if (this.JoinInfos?.Count > 1)
{ {
return this.GetJoinUpdateMany(columnsString); return this.GetJoinUpdateMany(columnsString,whereString);
} }
var formString = $" {Builder.GetTranslationColumnName(this.TableName)} AS {Builder.GetTranslationColumnName(this.ShortName)} "; var formString = $" {Builder.GetTranslationColumnName(this.TableName)} AS {Builder.GetTranslationColumnName(this.ShortName)} ";
var joinString = ""; var joinString = "";
@@ -252,7 +252,7 @@ namespace SqlSugar
columnsString = columnsString.Replace(Builder.GetTranslationColumnName(this.ShortName)+".","")+joinString; columnsString = columnsString.Replace(Builder.GetTranslationColumnName(this.ShortName)+".","")+joinString;
return string.Format(SqlTemplate, tableName, columnsString, whereString); return string.Format(SqlTemplate, tableName, columnsString, whereString);
} }
private string GetJoinUpdateMany(string columnsString) private string GetJoinUpdateMany(string columnsString,string where)
{ {
var formString = $" {Builder.GetTranslationColumnName(this.TableName)} AS {Builder.GetTranslationColumnName(this.ShortName)} "; var formString = $" {Builder.GetTranslationColumnName(this.TableName)} AS {Builder.GetTranslationColumnName(this.ShortName)} ";
var joinString = ""; var joinString = "";
@@ -266,7 +266,7 @@ namespace SqlSugar
} }
var tableName = Builder.GetTranslationColumnName(this.TableName) + "\r\n "; var tableName = Builder.GetTranslationColumnName(this.TableName) + "\r\n ";
columnsString = columnsString.Replace(Builder.GetTranslationColumnName(this.ShortName) + ".", "") + $" FROM {Builder.GetTranslationColumnName(this.TableName)} {Builder.GetTranslationColumnName(this.ShortName)}\r\n " + joinString; columnsString = columnsString.Replace(Builder.GetTranslationColumnName(this.ShortName) + ".", "") + $" FROM {Builder.GetTranslationColumnName(this.TableName)} {Builder.GetTranslationColumnName(this.ShortName)}\r\n " + joinString;
return string.Format(SqlTemplate, tableName, columnsString, null); return string.Format(SqlTemplate, tableName, columnsString, where);
} }
public override string FormatDateTimeOffset(object value) public override string FormatDateTimeOffset(object value)
{ {