From 8fd8deb4c5fd7b8ff8ada06ffcbb35c9a52ca7f7 Mon Sep 17 00:00:00 2001 From: "610262374@qq.com" <610262374@qq.com> Date: Tue, 11 Dec 2018 22:46:26 +0800 Subject: [PATCH] UpdateColumns SqlFunc.IIF SqlFunc.IF BUG --- Src/Asp.Net/SqlServerTest/Demos/2_Update.cs | 12 ++++++++++++ .../SqlBuilderProvider/SqlBuilderProvider.cs | 4 ++++ .../ResolveItems/MethodCallExpressionResolve.cs | 2 +- 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/Src/Asp.Net/SqlServerTest/Demos/2_Update.cs b/Src/Asp.Net/SqlServerTest/Demos/2_Update.cs index e3fa99368..d5e278c00 100644 --- a/Src/Asp.Net/SqlServerTest/Demos/2_Update.cs +++ b/Src/Asp.Net/SqlServerTest/Demos/2_Update.cs @@ -93,6 +93,18 @@ namespace OrmTest.Demo dtList.Add(dt); dtList.Add(dt2); var t666 = db.Updateable(dtList).AS("student").WhereColumns("id").With(SqlWith.UpdLock).ExecuteCommand(); + + + var t20 = db.Updateable().UpdateColumns(p => new Student() + { + SchoolId = SqlFunc.IIF(p.Id == 1, 2, 3) + }).Where(p => p.Id == 10000).ExecuteCommand(); + var t21= db.Updateable().UpdateColumns(p => new Student() + { + SchoolId = SqlFunc.IF(p.Id==1).Return(1).End(p.Id) + }).Where(p => p.Id == 10000).ExecuteCommand(); + + } } } diff --git a/Src/Asp.Net/SqlSugar/Abstract/SqlBuilderProvider/SqlBuilderProvider.cs b/Src/Asp.Net/SqlSugar/Abstract/SqlBuilderProvider/SqlBuilderProvider.cs index 733cd31c9..d81d548d3 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/SqlBuilderProvider/SqlBuilderProvider.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/SqlBuilderProvider/SqlBuilderProvider.cs @@ -75,6 +75,10 @@ namespace SqlSugar public virtual string GetNoTranslationColumnName(string name) { + if (name.Contains("=")) + { + name=name.Split('=').First(); + } if (!name.Contains(SqlTranslationLeft)) return name; return name == null ? string.Empty : Regex.Match(name, @".*" + "\\" + SqlTranslationLeft + "(.*?)" + "\\" + SqlTranslationRight + "").Groups[1].Value; } diff --git a/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve.cs b/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve.cs index deb687b08..9248880f7 100644 --- a/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve.cs +++ b/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve.cs @@ -59,7 +59,7 @@ namespace SqlSugar { CaseWhenResolve caseResole = new CaseWhenResolve(express, this.Context, parameter.OppsiteExpression); var appendSql = caseResole.GetSql(); - if (this.Context.ResolveType.IsIn(ResolveExpressType.SelectMultiple, ResolveExpressType.SelectSingle)) + if (this.Context.ResolveType.IsIn(ResolveExpressType.SelectMultiple, ResolveExpressType.SelectSingle,ResolveExpressType.Update)) { parameter.BaseParameter.CommonTempData = appendSql; }