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;