diff --git a/OrmTest/Demo/Update.cs b/OrmTest/Demo/Update.cs index 4316544a1..a83bad765 100644 --- a/OrmTest/Demo/Update.cs +++ b/OrmTest/Demo/Update.cs @@ -44,6 +44,11 @@ namespace OrmTest.Demo //Where By Expression var t9 = db.Updateable(updateObj).Where(it => it.Id == 1).ExecuteCommand(); + + //Where + var t10= db.Updateable() + .UpdateColumns(it => new Student() { Name = "jack", SchoolId =1 }) + .Where(it => it.Id == 11).ExecuteCommand(); } public static SqlSugarClient GetInstance() { diff --git a/OrmTest/UnitTest/Update.cs b/OrmTest/UnitTest/Update.cs index 2af2a9939..8c16a8741 100644 --- a/OrmTest/UnitTest/Update.cs +++ b/OrmTest/UnitTest/Update.cs @@ -119,8 +119,8 @@ UNION ALL string name = "x"; var t10 = db.Updateable().UpdateColumns(it => new Student() { Name =name, SchoolId=updateObj.SchoolId }).Where(it=>it.Id==11).ToSql(); base.Check(@"UPDATE [Student] SET - [SchoolId] = [@Const0] , [Name] = [@constant1] WHERE ( [Id] = @Id1 )", new List() { - new SugarParameter("@constant1","x"), + [SchoolId] = @Const0 , [Name] = @const3 WHERE ( [Id] = @Id1 )", new List() { + new SugarParameter("@const3","x"), new SugarParameter("@Const0",18), new SugarParameter("@Id1",11)}, t10.Key, diff --git a/SqlSugar/ExpressionsToSql/ExpressionContext.cs b/SqlSugar/ExpressionsToSql/ExpressionContext.cs index d8cd88931..41a0003ec 100644 --- a/SqlSugar/ExpressionsToSql/ExpressionContext.cs +++ b/SqlSugar/ExpressionsToSql/ExpressionContext.cs @@ -150,9 +150,9 @@ namespace SqlSugar return string.Format(" {0} {1} {2} ", GetTranslationTableName(fieldValue), "AS", GetTranslationColumnName(asName)); } - public virtual string GetEqString(string asName, string fieldValue) + public virtual string GetEqString(string eqName, string fieldValue) { - return string.Format(" {2} {1} {0} ", GetTranslationTableName(fieldValue), "=", GetTranslationColumnName(asName)); + return string.Format(" {0} {1} {2} ", GetTranslationColumnName(eqName), "=", fieldValue); } public virtual string GetAsString(string asName, string fieldValue, string fieldShortName) diff --git a/SqlSugar/ExpressionsToSql/ResolveItems/MemberInitExpressionResolve.cs b/SqlSugar/ExpressionsToSql/ResolveItems/MemberInitExpressionResolve.cs index ead56f665..1ddebc79c 100644 --- a/SqlSugar/ExpressionsToSql/ResolveItems/MemberInitExpressionResolve.cs +++ b/SqlSugar/ExpressionsToSql/ResolveItems/MemberInitExpressionResolve.cs @@ -53,7 +53,7 @@ namespace SqlSugar { base.Expression = item; base.Start(); - string parameterName = this.Context.SqlParameterKeyWord + "constant" + i; + string parameterName = this.Context.SqlParameterKeyWord + "const" + this.ContentIndex; parameter.Context.Result.Append(base.Context.GetEqString(memberName, parameterName)); this.Context.Parameters.Add(new SugarParameter(parameterName, parameter.CommonTempData)); } @@ -73,7 +73,8 @@ namespace SqlSugar base.Expression = item; base.Start(); parameter.IsAppendResult(); - base.Context.Result.Append(base.Context.GetEqString(memberName, parameter.CommonTempData.ObjToString())); + string parameterName = this.Context.SqlParameterKeyWord + "const" + +this.ContentIndex; ; + parameter.Context.Result.Append(base.Context.GetEqString(memberName, parameter.CommonTempData.ObjToString())); base.Context.Result.CurrentParameter = null; } }