From a76ae83eab78c919bf268aa97609f085cc93fede Mon Sep 17 00:00:00 2001
From: 28810 <28810@YEXIANGQIN>
Date: Thu, 11 Jun 2020 00:06:53 +0800
Subject: [PATCH] =?UTF-8?q?-=20=E4=BF=AE=E5=A4=8D=20IncludeMany=20?=
=?UTF-8?q?=E5=8F=AA=E5=A1=AB=E5=85=85=E5=AD=90=E5=B1=9E=E6=80=A7=E4=B8=AD?=
=?UTF-8?q?=E5=8F=8C=E5=90=91=E5=85=B3=E7=B3=BB=E7=9A=84=20ManyToOne=20?=
=?UTF-8?q?=E5=AF=B9=E8=B1=A1=E5=80=BC=EF=BC=9B?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
FreeSql.Tests/FreeSql.Tests/FreeSql.Tests.csproj | 2 ++
.../FreeSql.Tests/Linq/QueryableRestoreToSelectTest.cs | 1 +
.../Internal/CommonProvider/SelectProvider/Select1Provider.cs | 2 +-
3 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/FreeSql.Tests/FreeSql.Tests/FreeSql.Tests.csproj b/FreeSql.Tests/FreeSql.Tests/FreeSql.Tests.csproj
index 96f5e946..9e16a3d0 100644
--- a/FreeSql.Tests/FreeSql.Tests/FreeSql.Tests.csproj
+++ b/FreeSql.Tests/FreeSql.Tests/FreeSql.Tests.csproj
@@ -9,6 +9,8 @@
FreeSql.Tests.xml
3
+ false
+ x86
diff --git a/FreeSql.Tests/FreeSql.Tests/Linq/QueryableRestoreToSelectTest.cs b/FreeSql.Tests/FreeSql.Tests/Linq/QueryableRestoreToSelectTest.cs
index 6bc941f9..3af1e098 100644
--- a/FreeSql.Tests/FreeSql.Tests/Linq/QueryableRestoreToSelectTest.cs
+++ b/FreeSql.Tests/FreeSql.Tests/Linq/QueryableRestoreToSelectTest.cs
@@ -42,6 +42,7 @@ namespace FreeSql.Tests.Linq
[Fact]
public void RestoreToSelect()
{
+ fsql.Insert(new qt01[] { new qt01 { name = "001" }, new qt01 { name = "001" } }).ExecuteAffrows();
Assert.Equal(fsql.Select().Skip(2).First(a => a.name), fsql.Select().AsQueryable().Skip(2).Take(1).RestoreToSelect().First(a => a.name));
Assert.Equal(fsql.Select().Skip(2).First(a => new { a.name }).name, fsql.Select().AsQueryable().Skip(2).Take(1).RestoreToSelect().First(a => new { a.name }).name);
}
diff --git a/FreeSql/Internal/CommonProvider/SelectProvider/Select1Provider.cs b/FreeSql/Internal/CommonProvider/SelectProvider/Select1Provider.cs
index 92bc2bc5..dc57b536 100644
--- a/FreeSql/Internal/CommonProvider/SelectProvider/Select1Provider.cs
+++ b/FreeSql/Internal/CommonProvider/SelectProvider/Select1Provider.cs
@@ -637,7 +637,7 @@ namespace FreeSql.Internal.CommonProvider
if (tr2ref == null) continue;
if (tr2ref.RefType != TableRefType.ManyToOne) continue;
if (tr2ref.RefEntityType != tb.Type) continue;
- if (string.Join(",", tr2ref.Columns.Select(a => a.CsName).OrderBy(a => a)) != string.Join(",", tbref.RefColumns.Select(a => a.CsName).OrderBy(a => a))) continue; //防止把 ManyToOne 多个相同类型的导航属性值都填充了
+ if (string.Join(",", tr2ref.Columns.Select(a => a.CsName).OrderBy(a => a)) != string.Join(",", tbref.RefColumns.Select(a => a.CsName).OrderBy(a => a))) continue; //- 修复 IncludeMany 只填充子属性中双向关系的 ManyToOne 对象值;防止把 ManyToOne 多个相同类型的导航属性值都填充了
parentNavs.Add(navProp.Key);
}
foreach (var nav in subList)