From a80d2cdf9de8d23707657722c4de42658f08c52c Mon Sep 17 00:00:00 2001 From: 2881099 <2881099@qq.com> Date: Wed, 4 May 2022 18:50:35 +0800 Subject: [PATCH] =?UTF-8?q?-=20=E4=BC=98=E5=8C=96=20EnableAddOrUpdateNavig?= =?UTF-8?q?ate=20=E9=80=BB=E8=BE=91=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FreeSql.DbContext/DbSet/DbSetAsync.cs | 5 ++++- FreeSql.DbContext/DbSet/DbSetSync.cs | 5 ++++- FreeSql/FreeSql.xml | 2 +- FreeSql/FreeSqlBuilder.cs | 2 +- 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/FreeSql.DbContext/DbSet/DbSetAsync.cs b/FreeSql.DbContext/DbSet/DbSetAsync.cs index 9d428528..645600c1 100644 --- a/FreeSql.DbContext/DbSet/DbSetAsync.cs +++ b/FreeSql.DbContext/DbSet/DbSetAsync.cs @@ -328,6 +328,7 @@ namespace FreeSql } break; case Internal.Model.TableRefType.OneToMany: + var addlist = isAdd ? new List() : null; foreach (var propValItem in propValEach) { for (var colidx = 0; colidx < tref.Columns.Count; colidx++) @@ -335,8 +336,10 @@ namespace FreeSql var val = FreeSql.Internal.Utils.GetDataReaderValue(tref.RefColumns[colidx].CsType, _db.OrmOriginal.GetEntityValueWithPropertyName(_table.Type, item, tref.Columns[colidx].CsName)); _db.OrmOriginal.SetEntityValueWithPropertyName(tref.RefEntityType, propValItem, tref.RefColumns[colidx].CsName, val); } - await refSet.AddOrUpdateAsync(propValItem, cancellationToken); + if (isAdd) addlist.Add(propValItem); + else await refSet.AddOrUpdateAsync(propValItem, cancellationToken); } + if (isAdd) await refSet.AddRangeAsync(addlist, cancellationToken); break; } }; diff --git a/FreeSql.DbContext/DbSet/DbSetSync.cs b/FreeSql.DbContext/DbSet/DbSetSync.cs index 3d741622..68b2af29 100644 --- a/FreeSql.DbContext/DbSet/DbSetSync.cs +++ b/FreeSql.DbContext/DbSet/DbSetSync.cs @@ -339,6 +339,7 @@ namespace FreeSql } break; case Internal.Model.TableRefType.OneToMany: + var addlist = isAdd ? new List() : null; foreach (var propValItem in propValEach) { for (var colidx = 0; colidx < tref.Columns.Count; colidx++) @@ -346,8 +347,10 @@ namespace FreeSql var val = FreeSql.Internal.Utils.GetDataReaderValue(tref.RefColumns[colidx].CsType, _db.OrmOriginal.GetEntityValueWithPropertyName(_table.Type, item, tref.Columns[colidx].CsName)); _db.OrmOriginal.SetEntityValueWithPropertyName(tref.RefEntityType, propValItem, tref.RefColumns[colidx].CsName, val); } - refSet.AddOrUpdate(propValItem); + if (isAdd) addlist.Add(propValItem); + else refSet.AddOrUpdate(propValItem); } + if (isAdd) refSet.AddRange(addlist); break; } }; diff --git a/FreeSql/FreeSql.xml b/FreeSql/FreeSql.xml index cf23062f..1702c845 100644 --- a/FreeSql/FreeSql.xml +++ b/FreeSql/FreeSql.xml @@ -1386,7 +1386,7 @@ 实体类名 -> 数据库表名,命名转换(类名、属性名都生效) - 优先级小于 [Table(Name = "xxx")]、[Column(Name = "xxx")] + 优先级小于 [Column(Name = "xxx")] diff --git a/FreeSql/FreeSqlBuilder.cs b/FreeSql/FreeSqlBuilder.cs index 9ef6fe46..3f51c49e 100644 --- a/FreeSql/FreeSqlBuilder.cs +++ b/FreeSql/FreeSqlBuilder.cs @@ -150,7 +150,7 @@ namespace FreeSql /// /// 实体类名 -> 数据库表名,命名转换(类名、属性名都生效) - /// 优先级小于 [Table(Name = "xxx")]、[Column(Name = "xxx")] + /// 优先级小于 [Column(Name = "xxx")] /// /// ///