From 65bbee93a2a4100378d44f70ea0b93580201eb15 Mon Sep 17 00:00:00 2001 From: 2881099 <2881099@qq.com> Date: Fri, 15 Dec 2023 19:55:52 +0800 Subject: [PATCH] =?UTF-8?q?-=20=E4=BF=AE=E5=A4=8D=20=E5=B5=8C=E5=A5=97?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2DTO=E6=98=A0=E5=B0=84=E5=8F=AF=E8=83=BD?= =?UTF-8?q?=E8=A7=A6=E5=8F=91=E5=BE=AA=E7=8E=AF=E5=BC=95=E7=94=A8=20bug?= =?UTF-8?q?=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../FreeSql.Extensions.ZoreEntity.csproj | 2 +- FreeSql/Internal/CommonExpression.cs | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/Extensions/FreeSql.Extensions.ZoreEntity/FreeSql.Extensions.ZoreEntity.csproj b/Extensions/FreeSql.Extensions.ZoreEntity/FreeSql.Extensions.ZoreEntity.csproj index ef3429e8..0ab3de8e 100644 --- a/Extensions/FreeSql.Extensions.ZoreEntity/FreeSql.Extensions.ZoreEntity.csproj +++ b/Extensions/FreeSql.Extensions.ZoreEntity/FreeSql.Extensions.ZoreEntity.csproj @@ -18,7 +18,7 @@ true key.snk false - 3.2.807-preview20231214 + 3.2.806 readme.md diff --git a/FreeSql/Internal/CommonExpression.cs b/FreeSql/Internal/CommonExpression.cs index 87656f48..11096ba2 100644 --- a/FreeSql/Internal/CommonExpression.cs +++ b/FreeSql/Internal/CommonExpression.cs @@ -2568,6 +2568,7 @@ namespace FreeSql.Internal { if (tb == null || dtoProp == null || tb.Parameter == null) return null; var retList = new List(); + var matchIgnores = new Dictionary(); var retExp = LocalMatch(tb.Parameter.Type, tb.Parameter); if (retList.Any() == false) retList.Add(new[] { retExp }); return retList; @@ -2584,7 +2585,9 @@ namespace FreeSql.Internal if (Utils.dicExecuteArrayRowReadClassOrTuple.ContainsKey(typeProp.PropertyType)) continue; if (typeProp.PropertyType.IsAnonymousType() || _common.GetTableByEntity(typeProp.PropertyType)?.Columns.Any() == true) { - var nextExp = Expression.MakeMemberAccess(memExp, typeProp); + if (matchIgnores.ContainsKey(typeProp)) continue; + matchIgnores.Add(typeProp, true); + var nextExp = Expression.MakeMemberAccess(memExp, typeProp); var ret = LocalMatch(typeProp.PropertyType, nextExp); if (ret != null) {