From 88d7985d92d71af3f2bb85eac55f306cf52a38d4 Mon Sep 17 00:00:00 2001
From: 2881099 <2881099@qq.com>
Date: Mon, 2 May 2022 15:01:52 +0800
Subject: [PATCH] =?UTF-8?q?-=20=E5=A2=9E=E5=8A=A0=20IDelete.ToSqlCascade?=
=?UTF-8?q?=20=E9=80=92=E5=BD=92=E5=88=A0=E9=99=A4=E6=96=B9=E6=B3=95?=
=?UTF-8?q?=EF=BC=9B?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
FreeSql.DbContext/FreeSql.DbContext.xml | 9 --
.../Sqlite/Curd/SqliteDeleteTest.cs | 122 ++++++++++++++++++
.../Sqlite/Curd/SqliteSelectTest.cs | 7 +
FreeSql/Extensions/FreeSqlGlobalExtensions.cs | 46 ++++++-
4 files changed, 170 insertions(+), 14 deletions(-)
diff --git a/FreeSql.DbContext/FreeSql.DbContext.xml b/FreeSql.DbContext/FreeSql.DbContext.xml
index bdd16ff9..da7ace6b 100644
--- a/FreeSql.DbContext/FreeSql.DbContext.xml
+++ b/FreeSql.DbContext/FreeSql.DbContext.xml
@@ -538,14 +538,5 @@
-
-
- 批量注入 Repository,可以参考代码自行调整
-
-
-
-
-
-
diff --git a/FreeSql.Tests/FreeSql.Tests/Sqlite/Curd/SqliteDeleteTest.cs b/FreeSql.Tests/FreeSql.Tests/Sqlite/Curd/SqliteDeleteTest.cs
index dad8da8b..f2e80606 100644
--- a/FreeSql.Tests/FreeSql.Tests/Sqlite/Curd/SqliteDeleteTest.cs
+++ b/FreeSql.Tests/FreeSql.Tests/Sqlite/Curd/SqliteDeleteTest.cs
@@ -1,7 +1,12 @@
+using FreeSql;
using FreeSql.DataAnnotations;
+using FreeSql.Internal.CommonProvider;
+using FreeSql.Internal.Model;
using System;
using System.Collections.Generic;
using System.Linq;
+using System.Reflection;
+using System.Text;
using Xunit;
namespace FreeSql.Tests.Sqlite
@@ -104,3 +109,120 @@ namespace FreeSql.Tests.Sqlite
}
}
}
+
+public static class DeleteExtensions
+{
+ public static string ToSqlCascade(this IDelete that)
+ {
+ var delete = that as DeleteProvider;
+ if (delete == null) return null;
+ if (delete._whereTimes <= 0 || delete._where.Length == 0) return null;
+ if (LocalGetNavigates(delete._table).Any() == false) return that.ToSql();
+
+ var fsql = delete._orm;
+ var sb = new StringBuilder();
+ Dictionary eachdic = new Dictionary();
+
+ var rootSel = fsql.Select