Skip to content

Commit 03d3fe6

Browse files
committed
- 优化 IUpdate 未使用 .Set 时忽略执行;#1694
1 parent 231d5ac commit 03d3fe6

File tree

4 files changed

+116
-127
lines changed

4 files changed

+116
-127
lines changed

Examples/base_entity/Program.cs

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -570,7 +570,7 @@ static void Main(string[] args)
570570

571571
.UseConnectionString(FreeSql.DataType.MySql, "Data Source=127.0.0.1;Port=3306;User ID=root;Password=root;Initial Catalog=cccddd;Charset=utf8;SslMode=none;min pool size=1;Max pool size=3;AllowLoadLocalInfile=true")
572572

573-
//.UseConnectionString(FreeSql.DataType.SqlServer, "Data Source=.;Integrated Security=True;Initial Catalog=freesqlTest;Pooling=true;Max Pool Size=3;TrustServerCertificate=true")
573+
.UseConnectionString(FreeSql.DataType.SqlServer, "Data Source=.;Integrated Security=True;Initial Catalog=freesqlTest;Pooling=true;Max Pool Size=3;TrustServerCertificate=true")
574574
//.UseAdoConnectionPool(false)
575575
//.UseConnectionString(FreeSql.DataType.PostgreSQL, "Host=127.0.0.1;Port=5432;Username=postgres;Password=123456;Database=tedb;Pooling=true;Maximum Pool Size=2")
576576
////.UseConnectionString(FreeSql.DataType.PostgreSQL, "Host=127.0.0.1;Port=5432;Username=postgres;Password=123456;Database=toc;Pooling=true;Maximum Pool Size=2")
@@ -609,10 +609,20 @@ static void Main(string[] args)
609609
BaseEntity.Initialization(fsql, () => _asyncUow.Value);
610610
#endregion
611611

612-
//fsql.CodeFirst.IsGenerateCommandParameterWithLambda = true;
613-
//var TreeModel01 = fsql.Select<TreeModel>().Where(a => a.code == "x" && a.Childs.AsSelect().Any(b => b.id == a.id && b.status == ActivityStatusCode.Error)).ToList();
612+
fsql.Update<User1>()
613+
.Where(t => t.GroupId == 1)
614+
.ExecuteUpdated();
615+
616+
617+
fsql.Update<User1>()
618+
.Where(t => t.GroupId == 1)
619+
.SetIf(false, t => t.CreateTime == DateTime.Now)
620+
.ExecuteUpdated();
621+
622+
//fsql.CodeFirst.IsGenerateCommandParameterWithLambda = true;
623+
//var TreeModel01 = fsql.Select<TreeModel>().Where(a => a.code == "x" && a.Childs.AsSelect().Any(b => b.id == a.id && b.status == ActivityStatusCode.Error)).ToList();
614624

615-
var v1 = 123123123;
625+
var v1 = 123123123;
616626
var mysql0111 = fsql.Select<User1>().Where(a => a.Nickname.Contains(v1.ToString())).ToSql();
617627
var mysql0112 = fsql.Select<User1>().Where(a => a.Nickname.Contains(123123123.ToString())).ToSql();
618628
var v2 = "123123123";

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/FreeSql.xml

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

FreeSql/Internal/CommonProvider/UpdateProvider.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -970,7 +970,8 @@ public void ToSqlFetch(Action<StringBuilder> fetch)
970970
return;
971971
}
972972
if (_where.Length == 0) return;
973-
var newwhere = new StringBuilder();
973+
if (_set.Length == 0 && _setIncr.Length == 0) return;
974+
var newwhere = new StringBuilder();
974975
ToSqlWhere(newwhere);
975976

976977
var sb = new StringBuilder();
@@ -1004,6 +1005,7 @@ async public Task ToSqlFetchAsync(Func<StringBuilder, Task> fetchAsync)
10041005
return;
10051006
}
10061007
if (_where.Length == 0) return;
1008+
if (_set.Length == 0 && _setIncr.Length == 0) return;
10071009
var newwhere = new StringBuilder();
10081010
ToSqlWhere(newwhere);
10091011

@@ -1027,7 +1029,7 @@ async public Task ToSqlFetchAsync(Func<StringBuilder, Task> fetchAsync)
10271029
sb.Clear();
10281030
}
10291031
#endif
1030-
public virtual void ToSqlExtension110(StringBuilder sb, bool isAsTableSplited)
1032+
public virtual void ToSqlExtension110(StringBuilder sb, bool isAsTableSplited)
10311033
{
10321034
if (_where.Length == 0 && _source.Any() == false) return;
10331035
if (_source.Any() == false && _set.Length == 0 && _setIncr.Length == 0) return;

0 commit comments

Comments
 (0)