From 98a588ada91651a64f2a9a15d88f6d91fd02348e Mon Sep 17 00:00:00 2001
From: 2881099 <2881099@qq.com>
Date: Tue, 8 Nov 2022 14:05:35 +0800
Subject: [PATCH] =?UTF-8?q?-=20=E4=BF=AE=E5=A4=8D=20PgArrayToMany=20?=
=?UTF-8?q?=E6=95=B0=E7=BB=84=E5=AD=97=E6=AE=B5=E4=B8=BA=E7=A9=BA=E6=97=B6?=
=?UTF-8?q?=E7=9A=84=20bug=EF=BC=9B?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
FreeSql.DbContext/FreeSql.DbContext.xml | 9 +++++
.../SelectProvider/Select1Provider.cs | 33 ++++++++++---------
2 files changed, 27 insertions(+), 15 deletions(-)
diff --git a/FreeSql.DbContext/FreeSql.DbContext.xml b/FreeSql.DbContext/FreeSql.DbContext.xml
index 594fbad3..537315e2 100644
--- a/FreeSql.DbContext/FreeSql.DbContext.xml
+++ b/FreeSql.DbContext/FreeSql.DbContext.xml
@@ -733,6 +733,15 @@
+
+
+ 根据Assembly扫描所有继承IEntityTypeConfiguration<T>的配置类
+
+
+
+
+
+
创建普通数据上下文档对象
diff --git a/FreeSql/Internal/CommonProvider/SelectProvider/Select1Provider.cs b/FreeSql/Internal/CommonProvider/SelectProvider/Select1Provider.cs
index 7b5c2a13..8f8d1400 100644
--- a/FreeSql/Internal/CommonProvider/SelectProvider/Select1Provider.cs
+++ b/FreeSql/Internal/CommonProvider/SelectProvider/Select1Provider.cs
@@ -1336,25 +1336,28 @@ namespace FreeSql.Internal.CommonProvider
}).ToArray();
var arrExp = Expression.NewArrayInit(tbref.RefColumns[0].CsType, listKeys.Where(a => a != null).SelectMany(a => a).Distinct()
.Select(a => Expression.Constant(Utils.GetDataReaderValue(tbref.RefColumns[0].CsType, a), tbref.RefColumns[0].CsType)).ToArray());
- var otmExpParm1 = Expression.Parameter(typeof(TNavigate), "a");
- var containsMethod = _dicTypeMethod.GetOrAdd(tbref.RefColumns[0].CsType, et => new ConcurrentDictionary()).GetOrAdd("Contains", mn =>
- typeof(Enumerable).GetMethods().Where(a => a.Name == mn).First()).MakeGenericMethod(tbref.RefColumns[0].CsType);
- var refCol = Expression.MakeMemberAccess(otmExpParm1, tbref2.Properties[tbref.RefColumns[0].CsName]);
- subSelect.Where(Expression.Lambda>(
- Expression.Call(null, containsMethod, arrExp, refCol), otmExpParm1));
-
- if (isAsync)
+ if (arrExp.Expressions.Any())
{
+ var otmExpParm1 = Expression.Parameter(typeof(TNavigate), "a");
+ var containsMethod = _dicTypeMethod.GetOrAdd(tbref.RefColumns[0].CsType, et => new ConcurrentDictionary()).GetOrAdd("Contains", mn =>
+ typeof(Enumerable).GetMethods().Where(a => a.Name == mn).First()).MakeGenericMethod(tbref.RefColumns[0].CsType);
+ var refCol = Expression.MakeMemberAccess(otmExpParm1, tbref2.Properties[tbref.RefColumns[0].CsName]);
+ subSelect.Where(Expression.Lambda>(
+ Expression.Call(null, containsMethod, arrExp, refCol), otmExpParm1));
+
+ if (isAsync)
+ {
#if net40
#else
- if (selectExp == null) subList = await subSelect.ToListAsync(true, cancellationToken);
- else subList = await subSelect.ToListAsync(selectExp, cancellationToken);
+ if (selectExp == null) subList = await subSelect.ToListAsync(true, cancellationToken);
+ else subList = await subSelect.ToListAsync(selectExp, cancellationToken);
#endif
- }
- else
- {
- if (selectExp == null) subList = subSelect.ToList(true);
- else subList = subSelect.ToList(selectExp);
+ }
+ else
+ {
+ if (selectExp == null) subList = subSelect.ToList(true);
+ else subList = subSelect.ToList(selectExp);
+ }
}
if (subList.Any() == false)