From efc454b817333ecd65de1ded4b0b828983ae9089 Mon Sep 17 00:00:00 2001 From: 2881099 <2881099@qq.com> Date: Tue, 9 Aug 2022 19:21:22 +0800 Subject: [PATCH] =?UTF-8?q?-=20=E4=BC=98=E5=8C=96=20IUpdate.Set=20?= =?UTF-8?q?=E5=AD=97=E7=AC=A6=E4=B8=B2=E7=B4=AF=E5=8A=A0=E6=9C=AC=E8=BA=AB?= =?UTF-8?q?=E4=B8=BA=20NULL=20=E7=9A=84=E6=83=85=E5=86=B5=EF=BC=9B#1209?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FreeSql.Tests/FreeSql.Tests/Sqlite/Curd/SqliteUpdateTest.cs | 3 +++ FreeSql/Internal/CommonProvider/UpdateProvider.cs | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/FreeSql.Tests/FreeSql.Tests/Sqlite/Curd/SqliteUpdateTest.cs b/FreeSql.Tests/FreeSql.Tests/Sqlite/Curd/SqliteUpdateTest.cs index e6a4bbf8..c0066315 100644 --- a/FreeSql.Tests/FreeSql.Tests/Sqlite/Curd/SqliteUpdateTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/Sqlite/Curd/SqliteUpdateTest.cs @@ -156,6 +156,9 @@ namespace FreeSql.Tests.Sqlite sql = update.Set(a => a.Clicks * incrv / 1).Where(a => a.Id == 1).ToSql().Replace("\r\n", ""); Assert.Equal("UPDATE \"tb_topic\" SET \"Clicks\" = ifnull(\"Clicks\", 0) * 10 / 1 WHERE (\"Id\" = 1)", sql); + sql = update.Set(a => a.Title + "xxxx").Where(a => a.Id == 1).ToSql().Replace("\r\n", ""); + Assert.Equal("UPDATE \"tb_topic\" SET \"Title\" = ifnull(\"Title\", '') || 'xxxx' WHERE (\"Id\" = 1)", sql); + sql = update.Set(a => a.Id - incrv).Where(a => a.Id == 1).ToSql().Replace("\r\n", ""); Assert.Equal("UPDATE \"tb_topic\" SET \"Id\" = (\"Id\" - 10) WHERE (\"Id\" = 1)", sql); diff --git a/FreeSql/Internal/CommonProvider/UpdateProvider.cs b/FreeSql/Internal/CommonProvider/UpdateProvider.cs index 5e6a3bef..d928fa87 100644 --- a/FreeSql/Internal/CommonProvider/UpdateProvider.cs +++ b/FreeSql/Internal/CommonProvider/UpdateProvider.cs @@ -622,6 +622,11 @@ namespace FreeSql.Internal.CommonProvider if (replval == null) continue; var replname = _commonUtils.QuoteSqlName(col.Column.Attribute.Name); expt = expt.Replace(replname, _commonUtils.IsNull(replname, _commonUtils.FormatSql("{0}", replval))); + } + else if (col.Column.CsType == typeof(string)) + { + var replname = _commonUtils.QuoteSqlName(col.Column.Attribute.Name); + expt = expt.Replace(replname, _commonUtils.IsNull(replname, _commonUtils.FormatSql("{0}", ""))); } } _setIncr.Append(", ").Append(_commonUtils.QuoteSqlName(cols.First().Column.Attribute.Name)).Append(" = ").Append(expt);