Skip to content

Commit 0e82d6c

Browse files
committed
- 优化 IUpdate ToSql;
1 parent 3f77ea3 commit 0e82d6c

File tree

7 files changed

+313
-291
lines changed

7 files changed

+313
-291
lines changed

FreeSql.DbContext/FreeSql.DbContext.xml

Lines changed: 0 additions & 9 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

FreeSql.Tests/FreeSql.Tests.DbContext/RepositoryTests.cs

Lines changed: 304 additions & 280 deletions
Large diffs are not rendered by default.

FreeSql.Tests/FreeSql.Tests/Sqlite/Curd/SqliteUpdateTest.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
using FreeSql.DataAnnotations;
1+
using FreeSql.DataAnnotations;
22
using System;
33
using System.Collections.Generic;
44
using System.Linq;
@@ -174,6 +174,9 @@ public void Set()
174174

175175
sql = update.Set(a => a.Clicks == null).Where(a => a.Id == 1).ToSql().Replace("\r\n", "");
176176
Assert.Equal("UPDATE \"tb_topic\" SET \"Clicks\" = NULL WHERE (\"Id\" = 1)", sql);
177+
178+
sql = update.SetIf(false, a => a.Clicks == null).Where(a => a.Id == 1).ToSql()?.Replace("\r\n", "");
179+
Assert.Null(sql);
177180
}
178181
[Fact]
179182
public void SetRaw()

FreeSql/Internal/CommonProvider/DeleteProvider.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,7 @@ public virtual string ToSql()
177177
sb.Append(sql).Append("\r\n\r\n;\r\n\r\n");
178178
});
179179
if (sb.Length > 0) sb.Remove(sb.Length - 9, 9);
180+
if (sb.Length == 0) return null;
180181
return sb.ToString();
181182
}
182183

FreeSql/Internal/CommonProvider/UpdateProvider.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -797,6 +797,7 @@ public virtual string ToSql()
797797
sb2.Append(sql).Append("\r\n\r\n;\r\n\r\n");
798798
});
799799
if (sb2.Length > 0) sb2.Remove(sb2.Length - 9, 9);
800+
if (sb2.Length == 0) return null;
800801
return sb2.ToString();
801802
}
802803

@@ -866,6 +867,7 @@ async public Task ToSqlFetchAsync(Func<StringBuilder, Task> fetchAsync)
866867
public virtual void ToSqlExtension110(StringBuilder sb, bool isAsTableSplited)
867868
{
868869
if (_where.Length == 0 && _source.Any() == false) return;
870+
if (_source.Any() == false && _set.Length == 0 && _setIncr.Length == 0) return;
869871

870872
if (_table.AsTableImpl != null && isAsTableSplited == false && _source == _sourceOld && _source.Any())
871873
{

Providers/FreeSql.Provider.ClickHouse/Curd/ClickHouseDelete.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ public ClickHouseDelete(IFreeSql orm, CommonUtils commonUtils, CommonExpression
2020

2121
public override string ToSql()
2222
{
23-
return base.ToSql().Replace("DELETE FROM ", "ALTER TABLE ").Replace(" WHERE ", " DELETE WHERE ");
23+
return base.ToSql()?.Replace("DELETE FROM ", "ALTER TABLE ").Replace(" WHERE ", " DELETE WHERE ");
2424
}
2525

2626
#if net40

Providers/FreeSql.Provider.ClickHouse/Curd/ClickHouseUpdate.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ protected override void ToSqlWhen(StringBuilder sb, ColumnInfo[] primarys, objec
6868
public override void ToSqlExtension110(StringBuilder sb, bool isAsTableSplited)
6969
{
7070
if (_where.Length == 0 && _source.Any() == false) return;
71+
if (_source.Any() == false && _set.Length == 0 && _setIncr.Length == 0) return;
7172

7273
if (_table.AsTableImpl != null && isAsTableSplited == false && _source == _sourceOld && _source.Any())
7374
{

0 commit comments

Comments
 (0)