- 优化 TableInfo 元数据对 interface 实现类 IsVirtual 重写的判断(增加 IsFinal == false);

This commit is contained in:
28810 2020-03-16 12:17:53 +08:00
parent 0effad75e4
commit ec4b934f23
2 changed files with 14 additions and 4 deletions

View File

@ -116,10 +116,17 @@ namespace FreeSql.Tests
public string Name { get; set; }
}
public interface EdiInterface
{
List<EdiItem> Children { get; set; }
}
[Table(Name = "EDI")]
public class Edi
public class Edi : EdiInterface
{
[Column(Name = "EDI_ID")] public long Id { get; set; }
public List<EdiItem> Children { get; set; }
}
[Table(Name = "EDI_ITEM")]
public class EdiItem
@ -131,6 +138,8 @@ namespace FreeSql.Tests
[Fact]
public void Test03()
{
g.sqlite.Select<Edi>().ToList();
var itemId2 = 2;
var itemId = 1;
var edi = g.sqlite.Select<Edi>()

View File

@ -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;