From c9fa4d89838c908d50856b6e47dc50fd76d8235f Mon Sep 17 00:00:00 2001
From: 2881099 <2881099@qq.com>
Date: Wed, 4 May 2022 14:54:29 +0800
Subject: [PATCH] =?UTF-8?q?-=20=E5=A2=9E=E5=8A=A0=20DbSet/Repository=20Del?=
=?UTF-8?q?eteCascade=20=E7=BA=A7=E8=81=94=E5=88=A0=E9=99=A4=E5=8A=9F?=
=?UTF-8?q?=E8=83=BD=EF=BC=9B#609?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../DbContext/DbContextOptions.cs | 2 +-
FreeSql.DbContext/DbSet/DbSetAsync.cs | 12 +-
FreeSql.DbContext/DbSet/DbSetSync.cs | 170 +++++++++++-
FreeSql.DbContext/FreeSql.DbContext.xml | 25 +-
.../Repository/Repository/BaseRepository.cs | 4 +
.../Repository/Repository/IBaseRepository.cs | 9 +
.../RepositoryTests.cs | 246 ++++++++++++++++++
.../FreeSql.Tests/Internal/UtilsTest.cs | 2 +-
.../Sqlite/Curd/SqliteDeleteTest.cs | 118 +--------
.../Sqlite/Curd/SqliteSelectTest.cs | 4 -
.../Curd/SqlServerDelete.cs | 4 +-
.../Curd/SqlServerUpdate.cs | 4 +-
12 files changed, 470 insertions(+), 130 deletions(-)
diff --git a/FreeSql.DbContext/DbContext/DbContextOptions.cs b/FreeSql.DbContext/DbContext/DbContextOptions.cs
index 25cd8df4..1263a0b7 100644
--- a/FreeSql.DbContext/DbContext/DbContextOptions.cs
+++ b/FreeSql.DbContext/DbContext/DbContextOptions.cs
@@ -17,7 +17,7 @@ namespace FreeSql
/// - 保存的时候,由于数据库中记录非常之多,那么只想保存子表的部分数据,或者只需要添加,如何操作?
///
/// 【多对多】模型下,我们对中间表的保存是完整对比操作,对外部实体的操作只作新增(*注意不会更新)
- /// - 属性集合为空时,删除他们的所有关联数据(中间表)
+ /// - 属性集合为空时(!=null),删除他们的所有关联数据(中间表)
/// - 属性集合不为空时,与数据库存在的关联数据(中间表)完全对比,计算出应该删除和添加的记录
///
public bool EnableAddOrUpdateNavigateList { get; set; } = false;
diff --git a/FreeSql.DbContext/DbSet/DbSetAsync.cs b/FreeSql.DbContext/DbSet/DbSetAsync.cs
index ece0f850..504d9282 100644
--- a/FreeSql.DbContext/DbSet/DbSetAsync.cs
+++ b/FreeSql.DbContext/DbSet/DbSetAsync.cs
@@ -209,16 +209,26 @@ namespace FreeSql
var tref = _table.GetTableRef(prop.Name, false); //防止非正常的导航属性报错
if (tref == null) return;
+ DbSet