diff --git a/Examples/base_entity/Program.cs b/Examples/base_entity/Program.cs index 46b88d5b..c0aa4d01 100644 --- a/Examples/base_entity/Program.cs +++ b/Examples/base_entity/Program.cs @@ -559,7 +559,7 @@ namespace base_entity //.UseConnectionString(FreeSql.DataType.Firebird, @"database=localhost:D:\fbdata\EXAMPLES.fdb;user=sysdba;password=123456;max pool size=5") //.UseQuoteSqlName(false) - //.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") + .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") //.UseConnectionString(FreeSql.DataType.SqlServer, "Data Source=.;Integrated Security=True;Initial Catalog=freesqlTest;Pooling=true;Max Pool Size=3;TrustServerCertificate=true") @@ -600,6 +600,12 @@ namespace base_entity BaseEntity.Initialization(fsql, () => _asyncUow.Value); #endregion + var updatejoin031sql = fsql.Update() + .Join((a, b) => a.GroupId == b.Id) + .AsTable("t1", "t2") + .Set((a, b) => b.GroupName == a.Username + "b.groupname") + .ToSql(); + fsql.CodeFirst.Entity(e => { e.Help().Navigate(b => b.a, nameof(B11.Id)); @@ -618,11 +624,6 @@ namespace base_entity fsql.GlobalFilter.Apply("test01", a => a.IsDeleted == false); - var updatejoin031sql = fsql.Update() - .Join((a, b) => a.GroupId == b.Id) - .Set((a, b) => b.GroupName == a.Username + "b.groupname") - .ToSql(); - fsql.UseJsonMap(); fsql.Select().Where(a => a.FormLocking == null).Count(); diff --git a/FreeSql.DbContext/FreeSql.DbContext.xml b/FreeSql.DbContext/FreeSql.DbContext.xml index 26522f10..537315e2 100644 --- a/FreeSql.DbContext/FreeSql.DbContext.xml +++ b/FreeSql.DbContext/FreeSql.DbContext.xml @@ -800,14 +800,5 @@ - - - 批量注入 Repository,可以参考代码自行调整 - - - - - - diff --git a/FreeSql/FreeSql.xml b/FreeSql/FreeSql.xml index 0700ca6b..9843c757 100644 --- a/FreeSql/FreeSql.xml +++ b/FreeSql/FreeSql.xml @@ -3412,11 +3412,12 @@ 零个或多个过滤器名字 - + 设置表名 + diff --git a/FreeSql/Interface/Curd/IUpdateJoin.cs b/FreeSql/Interface/Curd/IUpdateJoin.cs index 1ebecf36..fef72130 100644 --- a/FreeSql/Interface/Curd/IUpdateJoin.cs +++ b/FreeSql/Interface/Curd/IUpdateJoin.cs @@ -106,8 +106,9 @@ namespace FreeSql /// 设置表名 /// /// + /// /// - IUpdateJoin AsTable(string tableName); + IUpdateJoin AsTable(string tableName, string joinTableName); /// /// 返回即将执行的SQL语句 /// diff --git a/FreeSql/Internal/CommonProvider/UpdateJoinProvider.cs b/FreeSql/Internal/CommonProvider/UpdateJoinProvider.cs index ce7e9241..82fcf6cf 100644 --- a/FreeSql/Internal/CommonProvider/UpdateJoinProvider.cs +++ b/FreeSql/Internal/CommonProvider/UpdateJoinProvider.cs @@ -98,9 +98,15 @@ namespace FreeSql.Internal.CommonProvider } #region proxy IUpdate - public IUpdateJoin AsTable(string tableName) + public IUpdateJoin AsTable(string tableName, string joinTableName) { _update.AsTable(tableName); + _query2Provider._tableRules.Clear(); + _query2Provider._tableRules.Add((t, old) => + { + if (t == typeof(T2)) return joinTableName; + return old; + }); return this; } public IUpdateJoin WithConnection(DbConnection connection)