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)