From ec4b934f239dfc79e71e45e3ea919c5462a909c4 Mon Sep 17 00:00:00 2001 From: 28810 <28810@YEXIANGQIN> Date: Mon, 16 Mar 2020 12:17:53 +0800 Subject: [PATCH] =?UTF-8?q?-=20=E4=BC=98=E5=8C=96=20TableInfo=20=E5=85=83?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=AF=B9=20interface=20=E5=AE=9E=E7=8E=B0?= =?UTF-8?q?=E7=B1=BB=20IsVirtual=20=E9=87=8D=E5=86=99=E7=9A=84=E5=88=A4?= =?UTF-8?q?=E6=96=AD=EF=BC=88=E5=A2=9E=E5=8A=A0=20IsFinal=20=3D=3D=20false?= =?UTF-8?q?=EF=BC=89=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FreeSql.Tests/FreeSql.Tests/UnitTest3.cs | 11 ++++++++++- FreeSql/Internal/UtilsExpressionTree.cs | 7 ++++--- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/FreeSql.Tests/FreeSql.Tests/UnitTest3.cs b/FreeSql.Tests/FreeSql.Tests/UnitTest3.cs index b31fe4d3..a23922cb 100644 --- a/FreeSql.Tests/FreeSql.Tests/UnitTest3.cs +++ b/FreeSql.Tests/FreeSql.Tests/UnitTest3.cs @@ -116,10 +116,17 @@ namespace FreeSql.Tests public string Name { get; set; } } + public interface EdiInterface + { + List Children { get; set; } + } + [Table(Name = "EDI")] - public class Edi + public class Edi : EdiInterface { [Column(Name = "EDI_ID")] public long Id { get; set; } + + public List Children { get; set; } } [Table(Name = "EDI_ITEM")] public class EdiItem @@ -131,6 +138,8 @@ namespace FreeSql.Tests [Fact] public void Test03() { + g.sqlite.Select().ToList(); + var itemId2 = 2; var itemId = 1; var edi = g.sqlite.Select() diff --git a/FreeSql/Internal/UtilsExpressionTree.cs b/FreeSql/Internal/UtilsExpressionTree.cs index 2823edcd..1a65014b 100644 --- a/FreeSql/Internal/UtilsExpressionTree.cs +++ b/FreeSql/Internal/UtilsExpressionTree.cs @@ -84,10 +84,11 @@ namespace FreeSql.Internal { if (common.CodeFirst.IsLazyLoading) { - var getIsVirtual = p.GetGetMethod()?.IsVirtual;// trytb.Type.GetMethod($"get_{p.Name}")?.IsVirtual; - var setIsVirtual = setMethod?.IsVirtual; + var getMethod = p.GetGetMethod(); + var getIsVirtual = getMethod?.IsVirtual == true && getMethod?.IsFinal == false;// trytb.Type.GetMethod($"get_{p.Name}")?.IsVirtual; + var setIsVirtual = setMethod?.IsVirtual == true && setMethod?.IsFinal == false; if (getIsVirtual == true || setIsVirtual == true) - propsLazy.Add(NaviteTuple.Create(p, getIsVirtual == true, setIsVirtual == true)); + propsLazy.Add(NaviteTuple.Create(p, getIsVirtual, setIsVirtual)); } propsNavObjs.Add(p); continue;