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)