mirror of
				https://github.com/nsnail/FreeSql.git
				synced 2025-11-04 17:20:49 +08:00 
			
		
		
		
	- 优化 TableInfo 元数据对 interface 实现类 IsVirtual 重写的判断(增加 IsFinal == false);
This commit is contained in:
		@@ -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>()
 | 
			
		||||
 
 | 
			
		||||
@@ -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;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user