From 819251c07520b3adefc55bbeb1649ba5d32d4843 Mon Sep 17 00:00:00 2001 From: qingcheng Date: Fri, 25 Jul 2025 10:38:21 +0800 Subject: [PATCH 1/2] Update EfCoreTableFluent`1.cs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修复数据库无法连接的时候,codefirst的HasData会导致SyncStructure迁移死循环调用,然后Stackoverflow异常 --- FreeSql.DbContext/EfCoreFluentApi/EfCoreTableFluent`1.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/FreeSql.DbContext/EfCoreFluentApi/EfCoreTableFluent`1.cs b/FreeSql.DbContext/EfCoreFluentApi/EfCoreTableFluent`1.cs index 1d8c97d10..050d5c456 100644 --- a/FreeSql.DbContext/EfCoreFluentApi/EfCoreTableFluent`1.cs +++ b/FreeSql.DbContext/EfCoreFluentApi/EfCoreTableFluent`1.cs @@ -344,6 +344,7 @@ namespace FreeSql.Extensions.EfCoreFluentApi lock (sdCopyLock) sd = sdCopy?.ToArray(); if (sd == null || sd.Any() == false) return; + if (e.Exception != null) return; foreach (var et in e.EntityTypes) { if (et != typeof(T)) continue; From 3e6aa05587f705d85a80f8b4693a0d0c3df187b6 Mon Sep 17 00:00:00 2001 From: qingcheng Date: Fri, 25 Jul 2025 10:55:28 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=BA=93=E6=97=A0=E6=B3=95=E8=BF=9E=E6=8E=A5=E7=9A=84=E6=97=B6?= =?UTF-8?q?=E5=80=99=EF=BC=8Ccodefirst=E7=9A=84HasData=E4=BC=9A=E5=AF=BC?= =?UTF-8?q?=E8=87=B4SyncStructure=E8=BF=81=E7=A7=BB=E6=AD=BB=E5=BE=AA?= =?UTF-8?q?=E7=8E=AF=E8=B0=83=E7=94=A8=EF=BC=8C=E7=84=B6=E5=90=8EStackover?= =?UTF-8?q?flow=E5=BC=82=E5=B8=B8=20#2082?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FreeSql.DbContext/EfCoreFluentApi/EfCoreTableFluent`1.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FreeSql.DbContext/EfCoreFluentApi/EfCoreTableFluent`1.cs b/FreeSql.DbContext/EfCoreFluentApi/EfCoreTableFluent`1.cs index 050d5c456..8a4b338ec 100644 --- a/FreeSql.DbContext/EfCoreFluentApi/EfCoreTableFluent`1.cs +++ b/FreeSql.DbContext/EfCoreFluentApi/EfCoreTableFluent`1.cs @@ -340,11 +340,11 @@ namespace FreeSql.Extensions.EfCoreFluentApi var sdCopyLock = new object(); _fsql.Aop.SyncStructureAfter += new EventHandler((s, e) => { + if (e.Exception != null) return; object[] sd = null; lock (sdCopyLock) sd = sdCopy?.ToArray(); if (sd == null || sd.Any() == false) return; - if (e.Exception != null) return; foreach (var et in e.EntityTypes) { if (et != typeof(T)) continue;