From b0ac5a873978050866978525fae6a661e72c726c Mon Sep 17 00:00:00 2001 From: 2881099 <2881099@qq.com> Date: Wed, 4 May 2022 15:49:05 +0800 Subject: [PATCH] =?UTF-8?q?-=20=E8=B0=83=E6=95=B4=20=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E6=94=AF=E6=8C=81=20OneToOne=20=E7=BA=A7=E8=81=94=E4=BF=9D?= =?UTF-8?q?=E5=AD=98=EF=BC=8CEnableAddOrUpdateNavigateList=20=E6=94=B9?= =?UTF-8?q?=E5=90=8D=E4=B8=BA=20=20EnableAddOrUpdateNavigate=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FreeSql.DbContext/DbContext/DbContext.cs | 2 +- .../DbContext/DbContextOptions.cs | 15 ++-- FreeSql.DbContext/DbSet/DbSetAsync.cs | 58 ++++++------ FreeSql.DbContext/DbSet/DbSetSync.cs | 64 ++++++------- .../EfCoreFluentApi/EfCoreTableFluent.cs | 4 +- .../EfCoreFluentApi/EfCoreTableFluent`1.cs | 4 +- FreeSql.DbContext/FreeSql.DbContext.xml | 18 ++-- .../RepositoryTests.cs | 89 ++++++++----------- .../FreeSql.Tests.DbContext/UnitTest1.cs | 26 +++--- .../GBase/Curd/GBaseSelectTest.cs | 4 +- .../MySqlConnector/Curd/MySqlSelectTest.cs | 4 +- .../Dameng/Curd/DamengSelectTest.cs | 4 +- .../Default/Curd/OdbcSelectTest.cs | 4 +- .../KingbaseES/Curd/KingbaseESSelectTest.cs | 4 +- .../MySql/Curd/MySqlSelectTest.cs | 4 +- .../Oracle/Curd/OracleSelectTest.cs | 4 +- .../PostgreSQL/Curd/PostgreSQLSelectTest.cs | 4 +- .../SqlServer/Curd/SqlServerSelectTest.cs | 6 +- .../FreeSql.Tests.Provider.Odbc/UnitTest1.cs | 2 +- .../Sqlite/Curd/SqliteSelectTest.cs | 6 +- .../Dameng/Curd/DamengSelectTest.cs | 4 +- .../Firebird/Curd/FirebirdSelectTest.cs | 4 +- .../KingbaseES/Curd/KingbaseESSelectTest.cs | 4 +- .../FreeSql.Tests/Linq/QueryableTest.cs | 2 +- .../MsAccess/Curd/MsAccessSelectTest.cs | 4 +- .../MySql/Curd/MySqlSelectTest.cs | 4 +- .../Oracle/Curd/OracleSelectTest.cs | 4 +- .../PostgreSQL/Curd/PostgreSQLSelectTest.cs | 4 +- .../ShenTong/Curd/ShenTongSelectTest.cs | 4 +- .../SqlServer/Curd/SqlServerSelectTest.cs | 4 +- .../Sqlite/Curd/SqliteSelectTest.cs | 4 +- FreeSql.Tests/FreeSql.Tests/UnitTest1.cs | 4 +- FreeSql.Tests/FreeSql.Tests/UnitTest3.cs | 2 +- FreeSql.Tests/FreeSql.Tests/UnitTest4.cs | 2 +- .../Curd/MySqlDelete.cs | 4 +- .../Curd/SqliteInsert.cs | 4 +- README.md | 2 +- README.zh-CN.md | 2 +- 38 files changed, 190 insertions(+), 198 deletions(-) diff --git a/FreeSql.DbContext/DbContext/DbContext.cs b/FreeSql.DbContext/DbContext/DbContext.cs index 1415eaa1..c0cceeb4 100644 --- a/FreeSql.DbContext/DbContext/DbContext.cs +++ b/FreeSql.DbContext/DbContext/DbContext.cs @@ -46,7 +46,7 @@ namespace FreeSql _optionsPriv = new DbContextOptions(); if (FreeSqlDbContextExtensions._dicSetDbContextOptions.TryGetValue(OrmOriginal.Ado.Identifier, out var opt)) { - _optionsPriv.EnableAddOrUpdateNavigateList = opt.EnableAddOrUpdateNavigateList; + _optionsPriv.EnableAddOrUpdateNavigate = opt.EnableAddOrUpdateNavigate; _optionsPriv.EnableGlobalFilter = opt.EnableGlobalFilter; _optionsPriv.NoneParameter = opt.NoneParameter; _optionsPriv.OnEntityChange = opt.OnEntityChange; diff --git a/FreeSql.DbContext/DbContext/DbContextOptions.cs b/FreeSql.DbContext/DbContext/DbContextOptions.cs index 1263a0b7..483958ba 100644 --- a/FreeSql.DbContext/DbContext/DbContextOptions.cs +++ b/FreeSql.DbContext/DbContext/DbContextOptions.cs @@ -7,20 +7,21 @@ namespace FreeSql { public class DbContextOptions { - /// - /// 是否开启一对多,多对多级联保存功能 + /// 是否开启 一对一(OneToOne)、一对多(OneToMany)、多对多(ManyToMany) 级联保存功能 /// - /// 【一对多】模型下, 保存时可级联保存实体的属性集合。出于使用安全考虑我们没做完整对比,只实现实体属性集合的添加或更新操作,所以不会删除实体属性集合的数据。 + /// 【一对一】模型下,保存时级联保存 OneToOne 属性。 + /// + /// 【一对多】模型下,保存时级联保存 OneToMany 集合属性。出于安全考虑我们没做完整对比,只针对实体属性集合的添加或更新操作,因此不会删除数据库表已有的数据。 /// 完整对比的功能使用起来太危险,试想下面的场景: - /// - 保存的时候,实体的属性集合是空的,如何操作?记录全部删除? - /// - 保存的时候,由于数据库中记录非常之多,那么只想保存子表的部分数据,或者只需要添加,如何操作? + /// - 保存的时候,实体的属性集合为空时(!=null),表记录全部删除? + /// - 保存的时候,由于数据库子表的记录很多,只想保存子表的部分数据,又或者只需要添加,如何操作? /// - /// 【多对多】模型下,我们对中间表的保存是完整对比操作,对外部实体的操作只作新增(*注意不会更新) + /// 【多对多】模型下,对中间表的保存是完整对比操作,对外部实体的只作新增操作(*注意不会更新) /// - 属性集合为空时(!=null),删除他们的所有关联数据(中间表) /// - 属性集合不为空时,与数据库存在的关联数据(中间表)完全对比,计算出应该删除和添加的记录 /// - public bool EnableAddOrUpdateNavigateList { get; set; } = false; + public bool EnableAddOrUpdateNavigate { get; set; } = false; /// /// 使用无参数化设置(对应 IInsert/IUpdate) diff --git a/FreeSql.DbContext/DbSet/DbSetAsync.cs b/FreeSql.DbContext/DbSet/DbSetAsync.cs index 504d9282..4fcbe3d2 100644 --- a/FreeSql.DbContext/DbSet/DbSetAsync.cs +++ b/FreeSql.DbContext/DbSet/DbSetAsync.cs @@ -54,8 +54,8 @@ namespace FreeSql _db.OrmOriginal.SetEntityValueWithPropertyName(_entityType, data, _tableIdentitys[0].CsName, idtval); _db._entityChangeReport.Add(new DbContext.EntityChangeReport.ChangeInfo { Object = data, Type = DbContext.EntityChangeType.Insert }); Attach(data); - if (_db.Options.EnableAddOrUpdateNavigateList) - await AddOrUpdateNavigateListAsync(data, true, null, cancellationToken); + if (_db.Options.EnableAddOrUpdateNavigate) + await AddOrUpdateNavigateAsync(data, true, null, cancellationToken); } else { @@ -65,8 +65,8 @@ namespace FreeSql IncrAffrows(1); _db.OrmOriginal.MapEntityValue(_entityType, newval, data); Attach(newval); - if (_db.Options.EnableAddOrUpdateNavigateList) - await AddOrUpdateNavigateListAsync(data, true, null, cancellationToken); + if (_db.Options.EnableAddOrUpdateNavigate) + await AddOrUpdateNavigateAsync(data, true, null, cancellationToken); } return; default: @@ -78,8 +78,8 @@ namespace FreeSql _db.OrmOriginal.SetEntityValueWithPropertyName(_entityType, data, _tableIdentitys[0].CsName, idtval); _db._entityChangeReport.Add(new DbContext.EntityChangeReport.ChangeInfo { Object = data, Type = DbContext.EntityChangeType.Insert }); Attach(data); - if (_db.Options.EnableAddOrUpdateNavigateList) - await AddOrUpdateNavigateListAsync(data, true, null, cancellationToken); + if (_db.Options.EnableAddOrUpdateNavigate) + await AddOrUpdateNavigateAsync(data, true, null, cancellationToken); return; } break; @@ -87,8 +87,8 @@ namespace FreeSql } EnqueueToDbContext(DbContext.EntityChangeType.Insert, CreateEntityState(data)); Attach(data); - if (_db.Options.EnableAddOrUpdateNavigateList) - await AddOrUpdateNavigateListAsync(data, true, null, cancellationToken); + if (_db.Options.EnableAddOrUpdateNavigate) + await AddOrUpdateNavigateAsync(data, true, null, cancellationToken); } public Task AddAsync(TEntity data, CancellationToken cancellationToken = default) => AddPrivAsync(data, true, cancellationToken); async public Task AddRangeAsync(IEnumerable data, CancellationToken cancellationToken = default) @@ -120,9 +120,9 @@ namespace FreeSql _db.OrmOriginal.MapEntityValue(_entityType, rets[idx++], s); IncrAffrows(rets.Count); AttachRange(rets); - if (_db.Options.EnableAddOrUpdateNavigateList) + if (_db.Options.EnableAddOrUpdateNavigate) foreach (var item in data) - await AddOrUpdateNavigateListAsync(item, true, null, cancellationToken); + await AddOrUpdateNavigateAsync(item, true, null, cancellationToken); return; default: if (_tableIdentitys.Length == 1) @@ -138,9 +138,9 @@ namespace FreeSql foreach (var item in data) EnqueueToDbContext(DbContext.EntityChangeType.Insert, CreateEntityState(item)); AttachRange(data); - if (_db.Options.EnableAddOrUpdateNavigateList) + if (_db.Options.EnableAddOrUpdateNavigate) foreach (var item in data) - await AddOrUpdateNavigateListAsync(item, true, null, cancellationToken); + await AddOrUpdateNavigateAsync(item, true, null, cancellationToken); } async public Task SaveManyAsync(TEntity item, string propertyName, CancellationToken cancellationToken = default) @@ -160,11 +160,11 @@ namespace FreeSql } await DbContextFlushCommandAsync(cancellationToken); - var oldEnable = _db.Options.EnableAddOrUpdateNavigateList; - _db.Options.EnableAddOrUpdateNavigateList = false; + var oldEnable = _db.Options.EnableAddOrUpdateNavigate; + _db.Options.EnableAddOrUpdateNavigate = false; try { - await AddOrUpdateNavigateListAsync(item, false, propertyName, cancellationToken); + await AddOrUpdateNavigateAsync(item, false, propertyName, cancellationToken); if (tref.RefType == Internal.Model.TableRefType.OneToMany) { await DbContextFlushCommandAsync(cancellationToken); @@ -197,10 +197,10 @@ namespace FreeSql } finally { - _db.Options.EnableAddOrUpdateNavigateList = oldEnable; + _db.Options.EnableAddOrUpdateNavigate = oldEnable; } } - async Task AddOrUpdateNavigateListAsync(TEntity item, bool isAdd, string propertyName, CancellationToken cancellationToken) + async Task AddOrUpdateNavigateAsync(TEntity item, bool isAdd, string propertyName, CancellationToken cancellationToken) { Func action = async prop => { @@ -213,15 +213,17 @@ namespace FreeSql switch (tref.RefType) { case Internal.Model.TableRefType.OneToOne: - //var propValItem = GetItemValue(item, prop); - //for (var colidx = 0; colidx < tref.Columns.Count; colidx++) - //{ - // 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); - //} - //if (isAdd) await refSet.AddAsync(propValItem); - //else await refSet.AddOrUpdateAsync(propValItem); - //return; + refSet = GetDbSetObject(tref.RefEntityType); + var propValItem = GetItemValue(item, prop); + if (propValItem == null) return; + for (var colidx = 0; colidx < tref.Columns.Count; colidx++) + { + 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); + } + if (isAdd) await refSet.AddAsync(propValItem); + else await refSet.AddOrUpdateAsync(propValItem); + return; case Internal.Model.TableRefType.ManyToOne: return; } @@ -441,9 +443,9 @@ namespace FreeSql state.OldValue = item; EnqueueToDbContext(DbContext.EntityChangeType.Update, state); } - if (_db.Options.EnableAddOrUpdateNavigateList) + if (_db.Options.EnableAddOrUpdateNavigate) foreach (var item in data) - await AddOrUpdateNavigateListAsync(item, false, null, cancellationToken); + await AddOrUpdateNavigateAsync(item, false, null, cancellationToken); } #endregion diff --git a/FreeSql.DbContext/DbSet/DbSetSync.cs b/FreeSql.DbContext/DbSet/DbSetSync.cs index a05ca9b6..3d741622 100644 --- a/FreeSql.DbContext/DbSet/DbSetSync.cs +++ b/FreeSql.DbContext/DbSet/DbSetSync.cs @@ -53,8 +53,8 @@ namespace FreeSql _db.OrmOriginal.SetEntityValueWithPropertyName(_entityType, data, _tableIdentitys[0].CsName, idtval); _db._entityChangeReport.Add(new DbContext.EntityChangeReport.ChangeInfo { Object = data, Type = DbContext.EntityChangeType.Insert }); Attach(data); - if (_db.Options.EnableAddOrUpdateNavigateList) - AddOrUpdateNavigateList(data, true, null); + if (_db.Options.EnableAddOrUpdateNavigate) + AddOrUpdateNavigate(data, true, null); } else { @@ -64,8 +64,8 @@ namespace FreeSql IncrAffrows(1); _db.OrmOriginal.MapEntityValue(_entityType, newval, data); Attach(newval); - if (_db.Options.EnableAddOrUpdateNavigateList) - AddOrUpdateNavigateList(data, true, null); + if (_db.Options.EnableAddOrUpdateNavigate) + AddOrUpdateNavigate(data, true, null); } return; default: @@ -77,8 +77,8 @@ namespace FreeSql _db.OrmOriginal.SetEntityValueWithPropertyName(_entityType, data, _tableIdentitys[0].CsName, idtval); _db._entityChangeReport.Add(new DbContext.EntityChangeReport.ChangeInfo { Object = data, Type = DbContext.EntityChangeType.Insert }); Attach(data); - if (_db.Options.EnableAddOrUpdateNavigateList) - AddOrUpdateNavigateList(data, true, null); + if (_db.Options.EnableAddOrUpdateNavigate) + AddOrUpdateNavigate(data, true, null); return; } break; @@ -86,8 +86,8 @@ namespace FreeSql } EnqueueToDbContext(DbContext.EntityChangeType.Insert, CreateEntityState(data)); Attach(data); - if (_db.Options.EnableAddOrUpdateNavigateList) - AddOrUpdateNavigateList(data, true, null); + if (_db.Options.EnableAddOrUpdateNavigate) + AddOrUpdateNavigate(data, true, null); } /// /// 添加 @@ -123,9 +123,9 @@ namespace FreeSql _db.OrmOriginal.MapEntityValue(_entityType, rets[idx++], s); IncrAffrows(rets.Count); AttachRange(rets); - if (_db.Options.EnableAddOrUpdateNavigateList) + if (_db.Options.EnableAddOrUpdateNavigate) foreach (var item in data) - AddOrUpdateNavigateList(item, true, null); + AddOrUpdateNavigate(item, true, null); return; default: if (_tableIdentitys.Length == 1) @@ -141,9 +141,9 @@ namespace FreeSql foreach (var item in data) EnqueueToDbContext(DbContext.EntityChangeType.Insert, CreateEntityState(item)); AttachRange(data); - if (_db.Options.EnableAddOrUpdateNavigateList) + if (_db.Options.EnableAddOrUpdateNavigate) foreach (var item in data) - AddOrUpdateNavigateList(item, true, null); + AddOrUpdateNavigate(item, true, null); } /// @@ -172,11 +172,11 @@ namespace FreeSql } DbContextFlushCommand(); - var oldEnable = _db.Options.EnableAddOrUpdateNavigateList; - _db.Options.EnableAddOrUpdateNavigateList = false; + var oldEnable = _db.Options.EnableAddOrUpdateNavigate; + _db.Options.EnableAddOrUpdateNavigate = false; try { - AddOrUpdateNavigateList(item, false, propertyName); + AddOrUpdateNavigate(item, false, propertyName); if (tref.RefType == Internal.Model.TableRefType.OneToMany) { DbContextFlushCommand(); @@ -209,10 +209,10 @@ namespace FreeSql } finally { - _db.Options.EnableAddOrUpdateNavigateList = oldEnable; + _db.Options.EnableAddOrUpdateNavigate = oldEnable; } } - void AddOrUpdateNavigateList(TEntity item, bool isAdd, string propertyName) + void AddOrUpdateNavigate(TEntity item, bool isAdd, string propertyName) { Action action = prop => { @@ -225,15 +225,17 @@ namespace FreeSql switch (tref.RefType) { case Internal.Model.TableRefType.OneToOne: - //var propValItem = GetItemValue(item, prop); - //for (var colidx = 0; colidx < tref.Columns.Count; colidx++) - //{ - // 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); - //} - //if (isAdd) refSet.Add(propValItem); - //else refSet.AddOrUpdate(propValItem); - //return; + refSet = GetDbSetObject(tref.RefEntityType); + var propValItem = GetItemValue(item, prop); + if (propValItem == null) return; + for (var colidx = 0; colidx < tref.Columns.Count; colidx++) + { + 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); + } + if (isAdd) refSet.Add(propValItem); + else refSet.AddOrUpdate(propValItem); + return; case Internal.Model.TableRefType.ManyToOne: return; } @@ -483,9 +485,9 @@ namespace FreeSql state.OldValue = item; EnqueueToDbContext(DbContext.EntityChangeType.Update, state); } - if (_db.Options.EnableAddOrUpdateNavigateList) + if (_db.Options.EnableAddOrUpdateNavigate) foreach (var item in data) - AddOrUpdateNavigateList(item, false, null); + AddOrUpdateNavigate(item, false, null); } #endregion @@ -603,8 +605,8 @@ namespace FreeSql if (data == null) data = _dataEditing; var beforeAffrows = 0; if (data == null) return 0; - var oldEnable = _db.Options.EnableAddOrUpdateNavigateList; - _db.Options.EnableAddOrUpdateNavigateList = false; + var oldEnable = _db.Options.EnableAddOrUpdateNavigate; + _db.Options.EnableAddOrUpdateNavigate = false; try { DbContextFlushCommand(); @@ -646,7 +648,7 @@ namespace FreeSql { _dataEditing = null; _statesEditing.Clear(); - _db.Options.EnableAddOrUpdateNavigateList = oldEnable; + _db.Options.EnableAddOrUpdateNavigate = oldEnable; } return _db._affrows - beforeAffrows; } diff --git a/FreeSql.DbContext/EfCoreFluentApi/EfCoreTableFluent.cs b/FreeSql.DbContext/EfCoreFluentApi/EfCoreTableFluent.cs index 90200d24..2374ef73 100644 --- a/FreeSql.DbContext/EfCoreFluentApi/EfCoreTableFluent.cs +++ b/FreeSql.DbContext/EfCoreFluentApi/EfCoreTableFluent.cs @@ -242,7 +242,7 @@ namespace FreeSql.Extensions.EfCoreFluentApi } /// - /// 使用 Repository + EnableAddOrUpdateNavigateList + NoneParameter 方式插入种子数据 + /// 使用 Repository + EnableAddOrUpdateNavigate + NoneParameter 方式插入种子数据 /// /// /// @@ -263,7 +263,7 @@ namespace FreeSql.Extensions.EfCoreFluentApi if (_fsql.Select().AsType(et).Any()) continue; var repo = _fsql.GetRepository(); - repo.DbContextOptions.EnableAddOrUpdateNavigateList = true; + repo.DbContextOptions.EnableAddOrUpdateNavigate = true; repo.DbContextOptions.NoneParameter = true; repo.AsType(et); repo.Insert(sd); diff --git a/FreeSql.DbContext/EfCoreFluentApi/EfCoreTableFluent`1.cs b/FreeSql.DbContext/EfCoreFluentApi/EfCoreTableFluent`1.cs index 388e7198..74fe0662 100644 --- a/FreeSql.DbContext/EfCoreFluentApi/EfCoreTableFluent`1.cs +++ b/FreeSql.DbContext/EfCoreFluentApi/EfCoreTableFluent`1.cs @@ -329,7 +329,7 @@ namespace FreeSql.Extensions.EfCoreFluentApi public EfCoreTableFluent HasData(T data) => HasData(new[] { data }); /// - /// 使用 Repository + EnableAddOrUpdateNavigateList + NoneParameter 方式插入种子数据 + /// 使用 Repository + EnableAddOrUpdateNavigate + NoneParameter 方式插入种子数据 /// /// /// @@ -350,7 +350,7 @@ namespace FreeSql.Extensions.EfCoreFluentApi if (_fsql.Select().AsType(et).Any()) continue; var repo = _fsql.GetRepository(); - repo.DbContextOptions.EnableAddOrUpdateNavigateList = true; + repo.DbContextOptions.EnableAddOrUpdateNavigate = true; repo.DbContextOptions.NoneParameter = true; repo.AsType(et); repo.Insert(sd); diff --git a/FreeSql.DbContext/FreeSql.DbContext.xml b/FreeSql.DbContext/FreeSql.DbContext.xml index 506d7964..75091f80 100644 --- a/FreeSql.DbContext/FreeSql.DbContext.xml +++ b/FreeSql.DbContext/FreeSql.DbContext.xml @@ -89,16 +89,18 @@ 刷新队列中的命令 - + - 是否开启一对多,多对多级联保存功能 + 是否开启 一对一(OneToOne)、一对多(OneToMany)、多对多(ManyToMany) 级联保存功能 - 【一对多】模型下, 保存时可级联保存实体的属性集合。出于使用安全考虑我们没做完整对比,只实现实体属性集合的添加或更新操作,所以不会删除实体属性集合的数据。 + 【一对一】模型下,保存时级联保存 OneToOne 属性。 + + 【一对多】模型下,保存时级联保存 OneToMany 集合属性。出于安全考虑我们没做完整对比,只针对实体属性集合的添加或更新操作,因此不会删除数据库表已有的数据。 完整对比的功能使用起来太危险,试想下面的场景: - - 保存的时候,实体的属性集合是空的,如何操作?记录全部删除? - - 保存的时候,由于数据库中记录非常之多,那么只想保存子表的部分数据,或者只需要添加,如何操作? + - 保存的时候,实体的属性集合为空时(!=null),表记录全部删除? + - 保存的时候,由于数据库子表的记录很多,只想保存子表的部分数据,又或者只需要添加,如何操作? - 【多对多】模型下,我们对中间表的保存是完整对比操作,对外部实体的操作只作新增(*注意不会更新) + 【多对多】模型下,对中间表的保存是完整对比操作,对外部实体的只作新增操作(*注意不会更新) - 属性集合为空时(!=null),删除他们的所有关联数据(中间表) - 属性集合不为空时,与数据库存在的关联数据(中间表)完全对比,计算出应该删除和添加的记录 @@ -230,7 +232,7 @@ - 使用 Repository + EnableAddOrUpdateNavigateList + NoneParameter 方式插入种子数据 + 使用 Repository + EnableAddOrUpdateNavigate + NoneParameter 方式插入种子数据 @@ -243,7 +245,7 @@ - 使用 Repository + EnableAddOrUpdateNavigateList + NoneParameter 方式插入种子数据 + 使用 Repository + EnableAddOrUpdateNavigate + NoneParameter 方式插入种子数据 diff --git a/FreeSql.Tests/FreeSql.Tests.DbContext/RepositoryTests.cs b/FreeSql.Tests/FreeSql.Tests.DbContext/RepositoryTests.cs index 404f8bc4..d2d03ca6 100644 --- a/FreeSql.Tests/FreeSql.Tests.DbContext/RepositoryTests.cs +++ b/FreeSql.Tests/FreeSql.Tests.DbContext/RepositoryTests.cs @@ -15,18 +15,17 @@ namespace FreeSql.Tests var fsql = g.sqlite; var groupRepo = fsql.GetRepository(); var userRepo = fsql.GetRepository(); + userRepo.DbContextOptions.EnableAddOrUpdateNavigate = true; //OneToOne fsql.Delete().Where("1=1").ExecuteAffrows(); fsql.Delete().Where("1=1").ExecuteAffrows(); - var user = new DeleteCascadeUser { Username = "admin01", Password = "pwd01" }; + var user = new DeleteCascadeUser { Username = "admin01", Password = "pwd01", UserExt = new DeleteCascadeUserExt { Remark = "用户备注01" } }; userRepo.Insert(user); - var userExt = new DeleteCascadeUserExt { UserId = user.Id, Remark = "用户备注01" }; - Assert.Equal(1, fsql.Insert(userExt).ExecuteAffrows()); var ret = userRepo.DeleteCascade(user); Assert.Equal(2, ret.Count); Assert.IsType(ret[0]); - Assert.Equal(userExt.UserId, (ret[0] as DeleteCascadeUserExt).UserId); - Assert.Equal(userExt.Remark, (ret[0] as DeleteCascadeUserExt).Remark); + Assert.Equal(user.UserExt.UserId, (ret[0] as DeleteCascadeUserExt).UserId); + Assert.Equal(user.UserExt.Remark, (ret[0] as DeleteCascadeUserExt).Remark); Assert.IsType(ret[1]); Assert.Equal(user.Id, (ret[1] as DeleteCascadeUser).Id); Assert.Equal(user.Username, (ret[1] as DeleteCascadeUser).Username); @@ -35,15 +34,13 @@ namespace FreeSql.Tests //OneToOne 先删除 UserExt fsql.Delete().Where("1=1").ExecuteAffrows(); fsql.Delete().Where("1=1").ExecuteAffrows(); - user = new DeleteCascadeUser { Username = "admin01", Password = "pwd01" }; + user = new DeleteCascadeUser { Username = "admin01", Password = "pwd01", UserExt = new DeleteCascadeUserExt { Remark = "用户备注01" } }; userRepo.Insert(user); - userExt = new DeleteCascadeUserExt { UserId = user.Id, Remark = "用户备注01" }; - Assert.Equal(1, fsql.Insert(userExt).ExecuteAffrows()); - ret = fsql.GetRepository().DeleteCascade(userExt); + ret = fsql.GetRepository().DeleteCascade(user.UserExt); Assert.Equal(2, ret.Count); Assert.IsType(ret[1]); - Assert.Equal(userExt.UserId, (ret[1] as DeleteCascadeUserExt).UserId); - Assert.Equal(userExt.Remark, (ret[1] as DeleteCascadeUserExt).Remark); + Assert.Equal(user.UserExt.UserId, (ret[1] as DeleteCascadeUserExt).UserId); + Assert.Equal(user.UserExt.Remark, (ret[1] as DeleteCascadeUserExt).Remark); Assert.IsType(ret[0]); Assert.Equal(user.Id, (ret[0] as DeleteCascadeUser).Id); Assert.Equal(user.Username, (ret[0] as DeleteCascadeUser).Username); @@ -53,38 +50,32 @@ namespace FreeSql.Tests fsql.Delete().Where("1=1").ExecuteAffrows(); fsql.Delete().Where("1=1").ExecuteAffrows(); fsql.Delete().Where("1=1").ExecuteAffrows(); - groupRepo.DbContextOptions.EnableAddOrUpdateNavigateList = true; + groupRepo.DbContextOptions.EnableAddOrUpdateNavigate = true; var group = new DeleteCascadeUserGroup { GroupName = "group01", Users = new List { - new DeleteCascadeUser { Username = "admin01", Password = "pwd01" }, - new DeleteCascadeUser { Username = "admin02", Password = "pwd02" }, - new DeleteCascadeUser { Username = "admin03", Password = "pwd03" }, + new DeleteCascadeUser { Username = "admin01", Password = "pwd01", UserExt = new DeleteCascadeUserExt { Remark = "用户备注01" } }, + new DeleteCascadeUser { Username = "admin02", Password = "pwd02", UserExt = new DeleteCascadeUserExt { Remark = "用户备注02" } }, + new DeleteCascadeUser { Username = "admin03", Password = "pwd03", UserExt = new DeleteCascadeUserExt { Remark = "用户备注03" } }, } }; groupRepo.Insert(group); Assert.Equal(group.Id, group.Users[0].GroupId); Assert.Equal(group.Id, group.Users[1].GroupId); Assert.Equal(group.Id, group.Users[2].GroupId); - var userExt0 = new DeleteCascadeUserExt { UserId = group.Users[0].Id, Remark = "用户备注01" }; - Assert.Equal(1, fsql.Insert(userExt0).ExecuteAffrows()); - var userExt1 = new DeleteCascadeUserExt { UserId = group.Users[1].Id, Remark = "用户备注02" }; - Assert.Equal(1, fsql.Insert(userExt1).ExecuteAffrows()); - var userExt2 = new DeleteCascadeUserExt { UserId = group.Users[2].Id, Remark = "用户备注03" }; - Assert.Equal(1, fsql.Insert(userExt2).ExecuteAffrows()); ret = groupRepo.DeleteCascade(group); Assert.Equal(7, ret.Count); Assert.IsType(ret[0]); - Assert.Equal(userExt0.UserId, (ret[0] as DeleteCascadeUserExt).UserId); - Assert.Equal(userExt0.Remark, (ret[0] as DeleteCascadeUserExt).Remark); + Assert.Equal(group.Users[0].UserExt.UserId, (ret[0] as DeleteCascadeUserExt).UserId); + Assert.Equal(group.Users[0].UserExt.Remark, (ret[0] as DeleteCascadeUserExt).Remark); Assert.IsType(ret[1]); - Assert.Equal(userExt1.UserId, (ret[1] as DeleteCascadeUserExt).UserId); - Assert.Equal(userExt1.Remark, (ret[1] as DeleteCascadeUserExt).Remark); + Assert.Equal(group.Users[1].UserExt.UserId, (ret[1] as DeleteCascadeUserExt).UserId); + Assert.Equal(group.Users[1].UserExt.Remark, (ret[1] as DeleteCascadeUserExt).Remark); Assert.IsType(ret[2]); - Assert.Equal(userExt2.UserId, (ret[2] as DeleteCascadeUserExt).UserId); - Assert.Equal(userExt2.Remark, (ret[2] as DeleteCascadeUserExt).Remark); + Assert.Equal(group.Users[2].UserExt.UserId, (ret[2] as DeleteCascadeUserExt).UserId); + Assert.Equal(group.Users[2].UserExt.Remark, (ret[2] as DeleteCascadeUserExt).Remark); Assert.IsType(ret[3]); Assert.Equal(group.Users[0].Id, (ret[3] as DeleteCascadeUser).Id); Assert.Equal(group.Users[0].Username, (ret[3] as DeleteCascadeUser).Username); @@ -118,39 +109,33 @@ namespace FreeSql.Tests new DeleteCascadeTag { TagName = "tag08" }, }; fsql.GetRepository().Insert(tags); - groupRepo.DbContextOptions.EnableAddOrUpdateNavigateList = true; + groupRepo.DbContextOptions.EnableAddOrUpdateNavigate = true; group = new DeleteCascadeUserGroup { GroupName = "group01", Users = new List { - new DeleteCascadeUser { Username = "admin01", Password = "pwd01", Tags = new List { tags[0], tags[2], tags[3], tags[6] } }, - new DeleteCascadeUser { Username = "admin02", Password = "pwd02", Tags = new List { tags[1], tags[2], tags[5] } }, - new DeleteCascadeUser { Username = "admin03", Password = "pwd03", Tags = new List { tags[3], tags[4], tags[6], tags[7] } }, + new DeleteCascadeUser { Username = "admin01", Password = "pwd01", UserExt = new DeleteCascadeUserExt { Remark = "用户备注01" }, Tags = new List { tags[0], tags[2], tags[3], tags[6] } }, + new DeleteCascadeUser { Username = "admin02", Password = "pwd02", UserExt = new DeleteCascadeUserExt { Remark = "用户备注02" }, Tags = new List { tags[1], tags[2], tags[5] } }, + new DeleteCascadeUser { Username = "admin03", Password = "pwd03", UserExt = new DeleteCascadeUserExt { Remark = "用户备注03" }, Tags = new List { tags[3], tags[4], tags[6], tags[7] } }, } }; groupRepo.Insert(group); Assert.Equal(group.Id, group.Users[0].GroupId); Assert.Equal(group.Id, group.Users[1].GroupId); Assert.Equal(group.Id, group.Users[2].GroupId); - userExt0 = new DeleteCascadeUserExt { UserId = group.Users[0].Id, Remark = "用户备注01" }; - Assert.Equal(1, fsql.Insert(userExt0).ExecuteAffrows()); - userExt1 = new DeleteCascadeUserExt { UserId = group.Users[1].Id, Remark = "用户备注02" }; - Assert.Equal(1, fsql.Insert(userExt1).ExecuteAffrows()); - userExt2 = new DeleteCascadeUserExt { UserId = group.Users[2].Id, Remark = "用户备注03" }; - Assert.Equal(1, fsql.Insert(userExt2).ExecuteAffrows()); ret = groupRepo.DeleteCascade(group); Assert.Equal(18, ret.Count); Assert.IsType(ret[0]); - Assert.Equal(userExt0.UserId, (ret[0] as DeleteCascadeUserExt).UserId); - Assert.Equal(userExt0.Remark, (ret[0] as DeleteCascadeUserExt).Remark); + Assert.Equal(group.Users[0].UserExt.UserId, (ret[0] as DeleteCascadeUserExt).UserId); + Assert.Equal(group.Users[0].UserExt.Remark, (ret[0] as DeleteCascadeUserExt).Remark); Assert.IsType(ret[1]); - Assert.Equal(userExt1.UserId, (ret[1] as DeleteCascadeUserExt).UserId); - Assert.Equal(userExt1.Remark, (ret[1] as DeleteCascadeUserExt).Remark); + Assert.Equal(group.Users[1].UserExt.UserId, (ret[1] as DeleteCascadeUserExt).UserId); + Assert.Equal(group.Users[1].UserExt.Remark, (ret[1] as DeleteCascadeUserExt).Remark); Assert.IsType(ret[2]); - Assert.Equal(userExt2.UserId, (ret[2] as DeleteCascadeUserExt).UserId); - Assert.Equal(userExt2.Remark, (ret[2] as DeleteCascadeUserExt).Remark); + Assert.Equal(group.Users[2].UserExt.UserId, (ret[2] as DeleteCascadeUserExt).UserId); + Assert.Equal(group.Users[2].UserExt.Remark, (ret[2] as DeleteCascadeUserExt).Remark); Assert.IsType(ret[3]); Assert.Equal(group.Users[0].Id, (ret[3] as DeleteCascadeUserTag).UserId); @@ -480,10 +465,10 @@ namespace FreeSql.Tests } [Fact] - public void EnableAddOrUpdateNavigateList_OneToMany() + public void EnableAddOrUpdateNavigate_OneToMany() { var repo = g.sqlite.GetRepository(); - repo.DbContextOptions.EnableAddOrUpdateNavigateList = true; + repo.DbContextOptions.EnableAddOrUpdateNavigate = true; var cts = new[] { new Cagetory { @@ -543,10 +528,10 @@ namespace FreeSql.Tests } [Fact] - public void EnableAddOrUpdateNavigateList_OneToMany_lazyloading() + public void EnableAddOrUpdateNavigate_OneToMany_lazyloading() { var repo = g.sqlite.GetRepository(); - repo.DbContextOptions.EnableAddOrUpdateNavigateList = true; + repo.DbContextOptions.EnableAddOrUpdateNavigate = true; var cts = new[] { new CagetoryLD { @@ -615,7 +600,7 @@ namespace FreeSql.Tests public void SaveMany_OneToMany() { var repo = g.sqlite.GetRepository(); - repo.DbContextOptions.EnableAddOrUpdateNavigateList = false; //关闭级联保存功能 + repo.DbContextOptions.EnableAddOrUpdateNavigate = false; //关闭级联保存功能 var cts = new[] { new Cagetory { @@ -664,7 +649,7 @@ namespace FreeSql.Tests } [Fact] - public void EnableAddOrUpdateNavigateList_OneToMany_Parent() + public void EnableAddOrUpdateNavigate_OneToMany_Parent() { g.sqlite.Delete().Where("1=1").ExecuteAffrows(); var repo = g.sqlite.GetRepository(); @@ -689,7 +674,7 @@ namespace FreeSql.Tests }) } }; - repo.DbContextOptions.EnableAddOrUpdateNavigateList = true; //打开级联保存功能 + repo.DbContextOptions.EnableAddOrUpdateNavigate = true; //打开级联保存功能 repo.Insert(cts); var notreelist1 = repo.Select.ToList(); @@ -722,7 +707,7 @@ namespace FreeSql.Tests } [Fact] - public void EnableAddOrUpdateNavigateList_ManyToMany() + public void EnableAddOrUpdateNavigate_ManyToMany() { var tags = new[] { new Tag { TagName = "流行" }, @@ -750,7 +735,7 @@ namespace FreeSql.Tests } }; var repo = g.sqlite.GetRepository(); - repo.DbContextOptions.EnableAddOrUpdateNavigateList = true; //打开级联保存功能 + repo.DbContextOptions.EnableAddOrUpdateNavigate = true; //打开级联保存功能 repo.Insert(ss); ss[0].Tags[0].TagName = "流行101"; diff --git a/FreeSql.Tests/FreeSql.Tests.DbContext/UnitTest1.cs b/FreeSql.Tests/FreeSql.Tests.DbContext/UnitTest1.cs index 8cf62928..f143cf05 100644 --- a/FreeSql.Tests/FreeSql.Tests.DbContext/UnitTest1.cs +++ b/FreeSql.Tests/FreeSql.Tests.DbContext/UnitTest1.cs @@ -1,4 +1,4 @@ -using FreeSql.DataAnnotations; +using FreeSql.DataAnnotations; using FreeSql; using System; using System.Collections.Generic; @@ -75,7 +75,7 @@ namespace FreeSql.Tests tags.Add(new Tag { Ddd = DateTime.Now.Second, - Name = "test_manytoMany_01_й2234234" + Name = "test_manytoMany_01_中国2234234" }); tags[0].Name = "123123"; tags.RemoveAt(1); @@ -99,36 +99,36 @@ namespace FreeSql.Tests var tag1 = new Tag { Ddd = DateTime.Now.Second, - Name = "test_manytoMany_01_й" + Name = "test_manytoMany_01_中国" }; var tag2 = new Tag { Ddd = DateTime.Now.Second, - Name = "test_manytoMany_02_" + Name = "test_manytoMany_02_美国" }; var tag3 = new Tag { Ddd = DateTime.Now.Second, - Name = "test_manytoMany_03_ձ" + Name = "test_manytoMany_03_日本" }; ctx.AddRange(new[] { tag1, tag2, tag3 }); var song1 = new Song { Create_time = DateTime.Now, - Title = "test_manytoMany_01_й.mp3", + Title = "test_manytoMany_01_我是中国人.mp3", Url = "http://ww.baidu.com/" }; var song2 = new Song { Create_time = DateTime.Now, - Title = "test_manytoMany_02_һ.mp3", + Title = "test_manytoMany_02_爱你一万年.mp3", Url = "http://ww.163.com/" }; var song3 = new Song { Create_time = DateTime.Now, - Title = "test_manytoMany_03_ǧһ.mp3", + Title = "test_manytoMany_03_千年等一回.mp3", Url = "http://ww.sina.com/" }; ctx.AddRange(new[] { song1, song2, song3 }); @@ -155,7 +155,7 @@ namespace FreeSql.Tests g.sqlite.SetDbContextOptions(opt => { - //opt.EnableAddOrUpdateNavigateList = false; + //opt.EnableAddOrUpdateNavigate = false; }); g.mysql.Insert().AppendData(new testenumWhere { type = testenumWhereType.Blaaa }).ExecuteAffrows(); @@ -163,11 +163,11 @@ namespace FreeSql.Tests var sql = g.mysql.Select().Where(a => a.type == testenumWhereType.Blaaa).ToSql(); var tolist = g.mysql.Select().Where(a => a.type == testenumWhereType.Blaaa).ToList(); - //֧ 1Զ + //支持 1对多 级联保存 using (var ctx = g.sqlite.CreateDbContext()) { - ctx.Options.EnableAddOrUpdateNavigateList = true; + ctx.Options.EnableAddOrUpdateNavigate = true; var tags = ctx.Set().Select.IncludeMany(a => a.Tags).ToList(); var tag = new Tag @@ -195,11 +195,11 @@ namespace FreeSql.Tests [Fact] public void Update() { - //ѯ 1Զ࣬ټ + //查询 1对多,再级联保存 using (var ctx = g.sqlite.CreateDbContext()) { - ctx.Options.EnableAddOrUpdateNavigateList = true; + ctx.Options.EnableAddOrUpdateNavigate = true; var tag = ctx.Set().Select.First(); tag.Tags.Add(new Tag { Name = "sub3" }); tag.Name = Guid.NewGuid().ToString(); diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.GBase/GBase/Curd/GBaseSelectTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.GBase/GBase/Curd/GBaseSelectTest.cs index b68f9582..535ecab6 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.GBase/GBase/Curd/GBaseSelectTest.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.GBase/GBase/Curd/GBaseSelectTest.cs @@ -191,7 +191,7 @@ WHERE (exists(SELECT 1 g.gbase.Delete().Where("1=1").ExecuteAffrows(); var repo = g.gbase.GetRepository(); - repo.DbContextOptions.EnableAddOrUpdateNavigateList = true; + repo.DbContextOptions.EnableAddOrUpdateNavigate = true; repo.Insert(new District { Code = "001", @@ -1704,7 +1704,7 @@ WHERE (((cast(a.Id as varchar(8000))) in ( SELECT * FROM (SELECT FIRST 10 b.Titl var fsql = g.gbase; fsql.Delete().Where("1=1").ExecuteAffrows(); var repo = fsql.GetRepository(); - repo.DbContextOptions.EnableAddOrUpdateNavigateList = true; + repo.DbContextOptions.EnableAddOrUpdateNavigate = true; repo.DbContextOptions.NoneParameter = true; repo.Insert(new VM_District_Child { diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.MySqlConnector/MySqlConnector/Curd/MySqlSelectTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.MySqlConnector/MySqlConnector/Curd/MySqlSelectTest.cs index 05a755db..74aa07c6 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.MySqlConnector/MySqlConnector/Curd/MySqlSelectTest.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.MySqlConnector/MySqlConnector/Curd/MySqlSelectTest.cs @@ -384,7 +384,7 @@ WHERE (((a.`Name`) in (SELECT s.`Title` as1 g.mysql.Delete().Where("1=1").ExecuteAffrows(); var repo = g.mysql.GetRepository(); - repo.DbContextOptions.EnableAddOrUpdateNavigateList = true; + repo.DbContextOptions.EnableAddOrUpdateNavigate = true; repo.Insert(new District { Code = "001", @@ -2001,7 +2001,7 @@ WHERE ((b.`IsFinished` OR a.`TaskType` = 3) AND b.`EnabledMark` = 1)", groupsql1 var fsql = g.mysql; fsql.Delete().Where("1=1").ExecuteAffrows(); var repo = fsql.GetRepository(); - repo.DbContextOptions.EnableAddOrUpdateNavigateList = true; + repo.DbContextOptions.EnableAddOrUpdateNavigate = true; repo.DbContextOptions.NoneParameter = true; repo.Insert(new VM_District_Child { diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Dameng/Curd/DamengSelectTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Dameng/Curd/DamengSelectTest.cs index 1a423cc6..aa20ecab 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Dameng/Curd/DamengSelectTest.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Dameng/Curd/DamengSelectTest.cs @@ -194,7 +194,7 @@ namespace FreeSql.Tests.Odbc.Dameng g.dameng.Delete().Where("1=1").ExecuteAffrows(); var repo = g.dameng.GetRepository(); - repo.DbContextOptions.EnableAddOrUpdateNavigateList = true; + repo.DbContextOptions.EnableAddOrUpdateNavigate = true; repo.Insert(new District { Code = "001", @@ -1728,7 +1728,7 @@ WHERE (((to_char(a.""ID"")) in (SELECT b.""TITLE"" var fsql = g.dameng; fsql.Delete().Where("1=1").ExecuteAffrows(); var repo = fsql.GetRepository(); - repo.DbContextOptions.EnableAddOrUpdateNavigateList = true; + repo.DbContextOptions.EnableAddOrUpdateNavigate = true; repo.DbContextOptions.NoneParameter = true; repo.Insert(new VM_District_Child { diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Default/Curd/OdbcSelectTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Default/Curd/OdbcSelectTest.cs index 67c0323c..bb0fc271 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Default/Curd/OdbcSelectTest.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Default/Curd/OdbcSelectTest.cs @@ -185,7 +185,7 @@ namespace FreeSql.Tests.Odbc.Default g.odbc.Delete().Where("1=1").ExecuteAffrows(); var repo = g.odbc.GetRepository(); - repo.DbContextOptions.EnableAddOrUpdateNavigateList = true; + repo.DbContextOptions.EnableAddOrUpdateNavigate = true; repo.Insert(new District { Code = "001", @@ -1517,7 +1517,7 @@ WHERE (((cast(a.[Id] as nvarchar)) in (SELECT b.[Title] var fsql = g.odbc; fsql.Delete().Where("1=1").ExecuteAffrows(); var repo = fsql.GetRepository(); - repo.DbContextOptions.EnableAddOrUpdateNavigateList = true; + repo.DbContextOptions.EnableAddOrUpdateNavigate = true; repo.DbContextOptions.NoneParameter = true; repo.Insert(new VM_District_Child { diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/KingbaseES/Curd/KingbaseESSelectTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/KingbaseES/Curd/KingbaseESSelectTest.cs index 1d620a53..b1a1dbd3 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/KingbaseES/Curd/KingbaseESSelectTest.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/KingbaseES/Curd/KingbaseESSelectTest.cs @@ -194,7 +194,7 @@ namespace FreeSql.Tests.Odbc.KingbaseES g.kingbaseES.Delete().Where("1=1").ExecuteAffrows(); var repo = g.kingbaseES.GetRepository(); - repo.DbContextOptions.EnableAddOrUpdateNavigateList = true; + repo.DbContextOptions.EnableAddOrUpdateNavigate = true; repo.Insert(new District { Code = "001", @@ -1677,7 +1677,7 @@ WHERE ((((a.""ID"")::text) in (SELECT b.""TITLE"" var fsql = g.kingbaseES; fsql.Delete().Where("1=1").ExecuteAffrows(); var repo = fsql.GetRepository(); - repo.DbContextOptions.EnableAddOrUpdateNavigateList = true; + repo.DbContextOptions.EnableAddOrUpdateNavigate = true; repo.DbContextOptions.NoneParameter = true; repo.Insert(new VM_District_Child { diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/MySql/Curd/MySqlSelectTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/MySql/Curd/MySqlSelectTest.cs index 0cac84eb..281a40c4 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/MySql/Curd/MySqlSelectTest.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/MySql/Curd/MySqlSelectTest.cs @@ -294,7 +294,7 @@ namespace FreeSql.Tests.Odbc.MySql g.mysql.Delete().Where("1=1").ExecuteAffrows(); var repo = g.mysql.GetRepository(); - repo.DbContextOptions.EnableAddOrUpdateNavigateList = true; + repo.DbContextOptions.EnableAddOrUpdateNavigate = true; repo.Insert(new District { Code = "001", @@ -1881,7 +1881,7 @@ WHERE ((b.`IsFinished` OR a.`TaskType` = 3) AND b.`EnabledMark` = 1)", groupsql1 var fsql = g.mysql; fsql.Delete().Where("1=1").ExecuteAffrows(); var repo = fsql.GetRepository(); - repo.DbContextOptions.EnableAddOrUpdateNavigateList = true; + repo.DbContextOptions.EnableAddOrUpdateNavigate = true; repo.DbContextOptions.NoneParameter = true; repo.Insert(new VM_District_Child { diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Oracle/Curd/OracleSelectTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Oracle/Curd/OracleSelectTest.cs index f6d4b36f..ed312b2b 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Oracle/Curd/OracleSelectTest.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Oracle/Curd/OracleSelectTest.cs @@ -194,7 +194,7 @@ namespace FreeSql.Tests.Odbc.Oracle g.oracle.Delete().Where("1=1").ExecuteAffrows(); var repo = g.oracle.GetRepository(); - repo.DbContextOptions.EnableAddOrUpdateNavigateList = true; + repo.DbContextOptions.EnableAddOrUpdateNavigate = true; repo.Insert(new District { Code = "001", @@ -1720,7 +1720,7 @@ WHERE (((to_char(a.""ID"")) in (SELECT b.""TITLE"" var fsql = g.oracle; fsql.Delete().Where("1=1").ExecuteAffrows(); var repo = fsql.GetRepository(); - repo.DbContextOptions.EnableAddOrUpdateNavigateList = true; + repo.DbContextOptions.EnableAddOrUpdateNavigate = true; repo.DbContextOptions.NoneParameter = true; repo.Insert(new VM_District_Child { diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/PostgreSQL/Curd/PostgreSQLSelectTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/PostgreSQL/Curd/PostgreSQLSelectTest.cs index 2b0743dc..9fbf33fc 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/PostgreSQL/Curd/PostgreSQLSelectTest.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/PostgreSQL/Curd/PostgreSQLSelectTest.cs @@ -270,7 +270,7 @@ namespace FreeSql.Tests.Odbc.PostgreSQL g.pgsql.Delete().Where("1=1").ExecuteAffrows(); var repo = g.pgsql.GetRepository(); - repo.DbContextOptions.EnableAddOrUpdateNavigateList = true; + repo.DbContextOptions.EnableAddOrUpdateNavigate = true; repo.Insert(new District { Code = "001", @@ -1780,7 +1780,7 @@ WHERE ((((a.""id"")::text) in (SELECT b.""title"" var fsql = g.pgsql; fsql.Delete().Where("1=1").ExecuteAffrows(); var repo = fsql.GetRepository(); - repo.DbContextOptions.EnableAddOrUpdateNavigateList = true; + repo.DbContextOptions.EnableAddOrUpdateNavigate = true; repo.DbContextOptions.NoneParameter = true; repo.Insert(new VM_District_Child { diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/SqlServer/Curd/SqlServerSelectTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/SqlServer/Curd/SqlServerSelectTest.cs index c97fd24a..13d5b62b 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/SqlServer/Curd/SqlServerSelectTest.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/SqlServer/Curd/SqlServerSelectTest.cs @@ -1,4 +1,4 @@ -using FreeSql.DataAnnotations; +using FreeSql.DataAnnotations; using System; using System.Collections.Generic; using System.Linq; @@ -184,7 +184,7 @@ namespace FreeSql.Tests.Odbc.SqlServer g.sqlserver.Delete().Where("1=1").ExecuteAffrows(); var repo = g.sqlserver.GetRepository(); - repo.DbContextOptions.EnableAddOrUpdateNavigateList = true; + repo.DbContextOptions.EnableAddOrUpdateNavigate = true; repo.Insert(new District { Code = "001", @@ -1666,7 +1666,7 @@ WHERE (((cast(a.[Id] as nvarchar(100))) in (SELECT b.[Title] var fsql = g.sqlserver; fsql.Delete().Where("1=1").ExecuteAffrows(); var repo = fsql.GetRepository(); - repo.DbContextOptions.EnableAddOrUpdateNavigateList = true; + repo.DbContextOptions.EnableAddOrUpdateNavigate = true; repo.DbContextOptions.NoneParameter = true; repo.Insert(new VM_District_Child { diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/UnitTest1.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/UnitTest1.cs index 34f896e3..be81bdbe 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/UnitTest1.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/UnitTest1.cs @@ -532,7 +532,7 @@ WHERE ROWNUM < 11"; ).ToSql(); - g.mysql.SetDbContextOptions(opt => opt.EnableAddOrUpdateNavigateList = true); + g.mysql.SetDbContextOptions(opt => opt.EnableAddOrUpdateNavigate = true); var trepo = g.mysql.GetGuidRepository(); trepo.Insert(new TaskBuild { diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Sqlite.Data/Sqlite/Curd/SqliteSelectTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Sqlite.Data/Sqlite/Curd/SqliteSelectTest.cs index 91b17c10..7888ff6e 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.Sqlite.Data/Sqlite/Curd/SqliteSelectTest.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.Sqlite.Data/Sqlite/Curd/SqliteSelectTest.cs @@ -1,4 +1,4 @@ -using FreeSql.DataAnnotations; +using FreeSql.DataAnnotations; using FreeSql.Internal.Model; using Newtonsoft.Json; using Newtonsoft.Json.Linq; @@ -234,7 +234,7 @@ namespace FreeSql.Tests.Sqlite g.sqlite.Delete().Where("1=1").ExecuteAffrows(); var repo = g.sqlite.GetRepository(); - repo.DbContextOptions.EnableAddOrUpdateNavigateList = true; + repo.DbContextOptions.EnableAddOrUpdateNavigate = true; repo.Insert(new District { Code = "001", @@ -2072,7 +2072,7 @@ WHERE (((cast(a.""Id"" as character)) in (SELECT b.""Title"" var fsql = g.sqlite; fsql.Delete().Where("1=1").ExecuteAffrows(); var repo = fsql.GetRepository(); - repo.DbContextOptions.EnableAddOrUpdateNavigateList = true; + repo.DbContextOptions.EnableAddOrUpdateNavigate = true; repo.DbContextOptions.NoneParameter = true; repo.Insert(new VM_District_Child { diff --git a/FreeSql.Tests/FreeSql.Tests/Dameng/Curd/DamengSelectTest.cs b/FreeSql.Tests/FreeSql.Tests/Dameng/Curd/DamengSelectTest.cs index c28f4a05..81cb894b 100644 --- a/FreeSql.Tests/FreeSql.Tests/Dameng/Curd/DamengSelectTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/Dameng/Curd/DamengSelectTest.cs @@ -309,7 +309,7 @@ WHERE (((a.""NAME"") in (SELECT s.""TITLE"" as1 g.dameng.Delete().Where("1=1").ExecuteAffrows(); var repo = g.dameng.GetRepository(); - repo.DbContextOptions.EnableAddOrUpdateNavigateList = true; + repo.DbContextOptions.EnableAddOrUpdateNavigate = true; repo.Insert(new District { Code = "001", @@ -1867,7 +1867,7 @@ WHERE (((to_char(a.""ID"")) in (SELECT b.""TITLE"" var fsql = g.dameng; fsql.Delete().Where("1=1").ExecuteAffrows(); var repo = fsql.GetRepository(); - repo.DbContextOptions.EnableAddOrUpdateNavigateList = true; + repo.DbContextOptions.EnableAddOrUpdateNavigate = true; repo.DbContextOptions.NoneParameter = true; repo.Insert(new VM_District_Child { diff --git a/FreeSql.Tests/FreeSql.Tests/Firebird/Curd/FirebirdSelectTest.cs b/FreeSql.Tests/FreeSql.Tests/Firebird/Curd/FirebirdSelectTest.cs index 9541ea13..8a07d65c 100644 --- a/FreeSql.Tests/FreeSql.Tests/Firebird/Curd/FirebirdSelectTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/Firebird/Curd/FirebirdSelectTest.cs @@ -309,7 +309,7 @@ WHERE (((a.""NAME"") in (SELECT s.""TITLE"" as1 g.firebird.Delete().Where("1=1").ExecuteAffrows(); var repo = g.firebird.GetRepository(); - repo.DbContextOptions.EnableAddOrUpdateNavigateList = true; + repo.DbContextOptions.EnableAddOrUpdateNavigate = true; repo.Insert(new District { Code = "001", @@ -1834,7 +1834,7 @@ WHERE (((cast(a.""ID"" as blob sub_type 1)) in (SELECT FIRST 10 b.""TITLE"" var fsql = g.firebird; fsql.Delete().Where("1=1").ExecuteAffrows(); var repo = fsql.GetRepository(); - repo.DbContextOptions.EnableAddOrUpdateNavigateList = true; + repo.DbContextOptions.EnableAddOrUpdateNavigate = true; repo.DbContextOptions.NoneParameter = true; repo.Insert(new VM_District_Child { diff --git a/FreeSql.Tests/FreeSql.Tests/KingbaseES/Curd/KingbaseESSelectTest.cs b/FreeSql.Tests/FreeSql.Tests/KingbaseES/Curd/KingbaseESSelectTest.cs index aae2c4af..fe1a81cc 100644 --- a/FreeSql.Tests/FreeSql.Tests/KingbaseES/Curd/KingbaseESSelectTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/KingbaseES/Curd/KingbaseESSelectTest.cs @@ -194,7 +194,7 @@ namespace FreeSql.Tests.KingbaseES g.kingbaseES.Delete().Where("1=1").ExecuteAffrows(); var repo = g.kingbaseES.GetRepository(); - repo.DbContextOptions.EnableAddOrUpdateNavigateList = true; + repo.DbContextOptions.EnableAddOrUpdateNavigate = true; repo.Insert(new District { Code = "001", @@ -1681,7 +1681,7 @@ WHERE ((((a.""ID"")::text) in (SELECT b.""TITLE"" var fsql = g.kingbaseES; fsql.Delete().Where("1=1").ExecuteAffrows(); var repo = fsql.GetRepository(); - repo.DbContextOptions.EnableAddOrUpdateNavigateList = true; + repo.DbContextOptions.EnableAddOrUpdateNavigate = true; repo.DbContextOptions.NoneParameter = true; repo.Insert(new VM_District_Child { diff --git a/FreeSql.Tests/FreeSql.Tests/Linq/QueryableTest.cs b/FreeSql.Tests/FreeSql.Tests/Linq/QueryableTest.cs index acae29f2..6d8718e3 100644 --- a/FreeSql.Tests/FreeSql.Tests/Linq/QueryableTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/Linq/QueryableTest.cs @@ -59,7 +59,7 @@ namespace FreeSql.Tests.Linq } }; var repo = fsql.GetRepository(); - repo.DbContextOptions.EnableAddOrUpdateNavigateList = true; + repo.DbContextOptions.EnableAddOrUpdateNavigate = true; repo.Insert(sd); Assert.True(fsql.Select().AsQueryable().Any()); diff --git a/FreeSql.Tests/FreeSql.Tests/MsAccess/Curd/MsAccessSelectTest.cs b/FreeSql.Tests/FreeSql.Tests/MsAccess/Curd/MsAccessSelectTest.cs index d4702afb..4b911823 100644 --- a/FreeSql.Tests/FreeSql.Tests/MsAccess/Curd/MsAccessSelectTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/MsAccess/Curd/MsAccessSelectTest.cs @@ -300,7 +300,7 @@ WHERE (((a.[Name]) in (SELECT s.[Title] as as1 g.msaccess.Delete().Where("1=1").ExecuteAffrows(); var repo = g.msaccess.GetRepository(); - repo.DbContextOptions.EnableAddOrUpdateNavigateList = true; + repo.DbContextOptions.EnableAddOrUpdateNavigate = true; repo.Insert(new District { Code = "001", @@ -1645,7 +1645,7 @@ WHERE (((cstr(a.[Id])) in (SELECT TOP 10 b.[Title] var fsql = g.msaccess; fsql.Delete().Where("1=1").ExecuteAffrows(); var repo = fsql.GetRepository(); - repo.DbContextOptions.EnableAddOrUpdateNavigateList = true; + repo.DbContextOptions.EnableAddOrUpdateNavigate = true; repo.DbContextOptions.NoneParameter = true; repo.Insert(new VM_District_Child { diff --git a/FreeSql.Tests/FreeSql.Tests/MySql/Curd/MySqlSelectTest.cs b/FreeSql.Tests/FreeSql.Tests/MySql/Curd/MySqlSelectTest.cs index 280f69d3..d7bbf8ac 100644 --- a/FreeSql.Tests/FreeSql.Tests/MySql/Curd/MySqlSelectTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/MySql/Curd/MySqlSelectTest.cs @@ -427,7 +427,7 @@ WHERE (((a.`Name`) in (SELECT s.`Title` as1 g.mysql.Delete().Where("1=1").ExecuteAffrows(); var repo = g.mysql.GetRepository(); - repo.DbContextOptions.EnableAddOrUpdateNavigateList = true; + repo.DbContextOptions.EnableAddOrUpdateNavigate = true; repo.Insert(new District { Code = "001", @@ -2090,7 +2090,7 @@ WHERE ((b.`IsFinished` OR a.`TaskType` = 3) AND b.`EnabledMark` = 1)", groupsql1 var fsql = g.mysql; fsql.Delete().Where("1=1").ExecuteAffrows(); var repo = fsql.GetRepository(); - repo.DbContextOptions.EnableAddOrUpdateNavigateList = true; + repo.DbContextOptions.EnableAddOrUpdateNavigate = true; repo.DbContextOptions.NoneParameter = true; repo.Insert(new VM_District_Child { diff --git a/FreeSql.Tests/FreeSql.Tests/Oracle/Curd/OracleSelectTest.cs b/FreeSql.Tests/FreeSql.Tests/Oracle/Curd/OracleSelectTest.cs index c2743d4e..80e880d2 100644 --- a/FreeSql.Tests/FreeSql.Tests/Oracle/Curd/OracleSelectTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/Oracle/Curd/OracleSelectTest.cs @@ -309,7 +309,7 @@ WHERE (((a.""NAME"") in (SELECT s.""TITLE"" as1 g.oracle.Delete().Where("1=1").ExecuteAffrows(); var repo = g.oracle.GetRepository(); - repo.DbContextOptions.EnableAddOrUpdateNavigateList = true; + repo.DbContextOptions.EnableAddOrUpdateNavigate = true; repo.Insert(new District { Code = "001", @@ -1843,7 +1843,7 @@ WHERE (((to_char(a.""ID"")) in (SELECT b.""TITLE"" var fsql = g.oracle; fsql.Delete().Where("1=1").ExecuteAffrows(); var repo = fsql.GetRepository(); - repo.DbContextOptions.EnableAddOrUpdateNavigateList = true; + repo.DbContextOptions.EnableAddOrUpdateNavigate = true; repo.DbContextOptions.NoneParameter = true; repo.Insert(new VM_District_Child { diff --git a/FreeSql.Tests/FreeSql.Tests/PostgreSQL/Curd/PostgreSQLSelectTest.cs b/FreeSql.Tests/FreeSql.Tests/PostgreSQL/Curd/PostgreSQLSelectTest.cs index 590cd131..feaebee2 100644 --- a/FreeSql.Tests/FreeSql.Tests/PostgreSQL/Curd/PostgreSQLSelectTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/PostgreSQL/Curd/PostgreSQLSelectTest.cs @@ -401,7 +401,7 @@ WHERE (((a.""name"") in (SELECT s.""title"" as1 g.pgsql.Delete().Where("1=1").ExecuteAffrows(); var repo = g.pgsql.GetRepository(); - repo.DbContextOptions.EnableAddOrUpdateNavigateList = true; + repo.DbContextOptions.EnableAddOrUpdateNavigate = true; repo.Insert(new District { Code = "001", @@ -1927,7 +1927,7 @@ WHERE ((((a.""id"")::text) in (SELECT b.""title"" var fsql = g.pgsql; fsql.Delete().Where("1=1").ExecuteAffrows(); var repo = fsql.GetRepository(); - repo.DbContextOptions.EnableAddOrUpdateNavigateList = true; + repo.DbContextOptions.EnableAddOrUpdateNavigate = true; repo.DbContextOptions.NoneParameter = true; repo.Insert(new VM_District_Child { diff --git a/FreeSql.Tests/FreeSql.Tests/ShenTong/Curd/ShenTongSelectTest.cs b/FreeSql.Tests/FreeSql.Tests/ShenTong/Curd/ShenTongSelectTest.cs index e5009a88..55f59af8 100644 --- a/FreeSql.Tests/FreeSql.Tests/ShenTong/Curd/ShenTongSelectTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/ShenTong/Curd/ShenTongSelectTest.cs @@ -270,7 +270,7 @@ namespace FreeSql.Tests.ShenTong g.shentong.Delete().Where("1=1").ExecuteAffrows(); var repo = g.shentong.GetRepository(); - repo.DbContextOptions.EnableAddOrUpdateNavigateList = true; + repo.DbContextOptions.EnableAddOrUpdateNavigate = true; repo.Insert(new District { Code = "001", @@ -1789,7 +1789,7 @@ WHERE ((((a.""ID"")::text) in (SELECT b.""TITLE"" var fsql = g.shentong; fsql.Delete().Where("1=1").ExecuteAffrows(); var repo = fsql.GetRepository(); - repo.DbContextOptions.EnableAddOrUpdateNavigateList = true; + repo.DbContextOptions.EnableAddOrUpdateNavigate = true; repo.DbContextOptions.NoneParameter = true; repo.Insert(new VM_District_Child { diff --git a/FreeSql.Tests/FreeSql.Tests/SqlServer/Curd/SqlServerSelectTest.cs b/FreeSql.Tests/FreeSql.Tests/SqlServer/Curd/SqlServerSelectTest.cs index e36d5839..8d98316c 100644 --- a/FreeSql.Tests/FreeSql.Tests/SqlServer/Curd/SqlServerSelectTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/SqlServer/Curd/SqlServerSelectTest.cs @@ -306,7 +306,7 @@ WHERE (((a.[Name]) in (SELECT s.[Title] as1 g.sqlserver.Delete().Where("1=1").ExecuteAffrows(); var repo = g.sqlserver.GetRepository(); - repo.DbContextOptions.EnableAddOrUpdateNavigateList = true; + repo.DbContextOptions.EnableAddOrUpdateNavigate = true; repo.Insert(new District { Code = "001", @@ -1910,7 +1910,7 @@ INNER JOIN [TestTypeInfo] a__Type With(NoLock) ON a__Type.[Guid] = a.[Id]", sql2 var fsql = g.sqlserver; fsql.Delete().Where("1=1").ExecuteAffrows(); var repo = fsql.GetRepository(); - repo.DbContextOptions.EnableAddOrUpdateNavigateList = true; + repo.DbContextOptions.EnableAddOrUpdateNavigate = true; repo.DbContextOptions.NoneParameter = true; repo.Insert(new VM_District_Child { diff --git a/FreeSql.Tests/FreeSql.Tests/Sqlite/Curd/SqliteSelectTest.cs b/FreeSql.Tests/FreeSql.Tests/Sqlite/Curd/SqliteSelectTest.cs index 7472ee66..aa1aeb41 100644 --- a/FreeSql.Tests/FreeSql.Tests/Sqlite/Curd/SqliteSelectTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/Sqlite/Curd/SqliteSelectTest.cs @@ -354,7 +354,7 @@ WHERE (((a.""Name"") in (SELECT s.""Title"" as1 g.sqlite.Delete().Where("1=1").ExecuteAffrows(); var repo = g.sqlite.GetRepository(); - repo.DbContextOptions.EnableAddOrUpdateNavigateList = true; + repo.DbContextOptions.EnableAddOrUpdateNavigate = true; repo.Insert(new District { Code = "001", @@ -2217,7 +2217,7 @@ WHERE (((cast(a.""Id"" as character)) in (SELECT b.""Title"" var fsql = g.sqlite; fsql.Delete().Where("1=1").ExecuteAffrows(); var repo = fsql.GetRepository(); - repo.DbContextOptions.EnableAddOrUpdateNavigateList = true; + repo.DbContextOptions.EnableAddOrUpdateNavigate = true; repo.DbContextOptions.NoneParameter = true; repo.Insert(new VM_District_Child { diff --git a/FreeSql.Tests/FreeSql.Tests/UnitTest1.cs b/FreeSql.Tests/FreeSql.Tests/UnitTest1.cs index c5fc53c0..d1f0d46d 100644 --- a/FreeSql.Tests/FreeSql.Tests/UnitTest1.cs +++ b/FreeSql.Tests/FreeSql.Tests/UnitTest1.cs @@ -830,7 +830,7 @@ namespace FreeSql.Tests ).ToSql(); - g.sqlite.SetDbContextOptions(opt => opt.EnableAddOrUpdateNavigateList = true); + g.sqlite.SetDbContextOptions(opt => opt.EnableAddOrUpdateNavigate = true); var trepo = g.sqlite.GetGuidRepository(); trepo.Insert(new TaskBuild { @@ -1146,7 +1146,7 @@ namespace FreeSql.Tests }; var repo = g.mysql.GetRepository(); - repo.DbContextOptions.EnableAddOrUpdateNavigateList = true; + repo.DbContextOptions.EnableAddOrUpdateNavigate = true; repo.Insert(neworder); var order = g.mysql.Select().Where(a => a.Id == neworder.Id).ToOne(); //查询订单表 diff --git a/FreeSql.Tests/FreeSql.Tests/UnitTest3.cs b/FreeSql.Tests/FreeSql.Tests/UnitTest3.cs index c5f0c9ca..07e082d3 100644 --- a/FreeSql.Tests/FreeSql.Tests/UnitTest3.cs +++ b/FreeSql.Tests/FreeSql.Tests/UnitTest3.cs @@ -210,7 +210,7 @@ namespace FreeSql.Tests g.sqlite.Delete().Where("1=1").ExecuteAffrows(); g.sqlite.Delete().Where("1=1").ExecuteAffrows(); var tshoprepo = g.sqlite.GetRepository(); - tshoprepo.DbContextOptions.EnableAddOrUpdateNavigateList = true; + tshoprepo.DbContextOptions.EnableAddOrUpdateNavigate = true; tshoprepo.Insert(new tcate01[] { new tcate01 { name = "tcate1", tshops = new List{ new tshop01(), new tshop01(), new tshop01() } }, diff --git a/FreeSql.Tests/FreeSql.Tests/UnitTest4.cs b/FreeSql.Tests/FreeSql.Tests/UnitTest4.cs index daecf4ec..78273091 100644 --- a/FreeSql.Tests/FreeSql.Tests/UnitTest4.cs +++ b/FreeSql.Tests/FreeSql.Tests/UnitTest4.cs @@ -304,7 +304,7 @@ GROUP BY a.""code"", a.""seqid"", a.""name""", sql); fsql.Delete().Where("1=1").ExecuteAffrows(); var repo = fsql.GetRepository(); - repo.DbContextOptions.EnableAddOrUpdateNavigateList = true; + repo.DbContextOptions.EnableAddOrUpdateNavigate = true; repo.Insert(new ts_otm_ll_01 { name = "001", diff --git a/Providers/FreeSql.Provider.MySql/Curd/MySqlDelete.cs b/Providers/FreeSql.Provider.MySql/Curd/MySqlDelete.cs index 5f5431a4..43f48c99 100644 --- a/Providers/FreeSql.Provider.MySql/Curd/MySqlDelete.cs +++ b/Providers/FreeSql.Provider.MySql/Curd/MySqlDelete.cs @@ -50,7 +50,7 @@ namespace FreeSql.MySql.Curd catch (Exception ex) { exception = ex; - throw ex; + throw; } finally { @@ -101,7 +101,7 @@ namespace FreeSql.MySql.Curd catch (Exception ex) { exception = ex; - throw ex; + throw; } finally { diff --git a/Providers/FreeSql.Provider.Sqlite/Curd/SqliteInsert.cs b/Providers/FreeSql.Provider.Sqlite/Curd/SqliteInsert.cs index ba1b143a..4a9dd070 100644 --- a/Providers/FreeSql.Provider.Sqlite/Curd/SqliteInsert.cs +++ b/Providers/FreeSql.Provider.Sqlite/Curd/SqliteInsert.cs @@ -38,7 +38,7 @@ namespace FreeSql.Sqlite.Curd catch (Exception ex) { exception = ex; - throw ex; + throw; } finally { @@ -81,7 +81,7 @@ namespace FreeSql.Sqlite.Curd catch (Exception ex) { exception = ex; - throw ex; + throw; } finally { diff --git a/README.md b/README.md index 9c8563d7..6d4e03f8 100644 --- a/README.md +++ b/README.md @@ -132,7 +132,7 @@ fsql.Select().OrderBy(a => Guid.NewGuid()).Limit(10).ToList(); [Transactional] public void Add() { var repo = ioc.GetService>(); - repo.DbContextOptions.EnableAddOrUpdateNavigateList = true; + repo.DbContextOptions.EnableAddOrUpdateNavigate = true; var item = new Tag { Name = "testaddsublist", diff --git a/README.zh-CN.md b/README.zh-CN.md index fa7bfcda..dd3b450d 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -135,7 +135,7 @@ fsql.Select().OrderBy(a => Guid.NewGuid()).Limit(10).ToList(); [Transactional] public void Add() { var repo = ioc.GetService>(); - repo.DbContextOptions.EnableAddOrUpdateNavigateList = true; + repo.DbContextOptions.EnableAddOrUpdateNavigate = true; var item = new Tag { Name = "testaddsublist",