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 string Name { get; set; }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        public interface EdiInterface
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            List<EdiItem> Children { get; set; }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        [Table(Name = "EDI")]
 | 
					        [Table(Name = "EDI")]
 | 
				
			||||||
        public class Edi
 | 
					        public class Edi : EdiInterface
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            [Column(Name = "EDI_ID")] public long Id { get; set; }
 | 
					            [Column(Name = "EDI_ID")] public long Id { get; set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            public List<EdiItem> Children { get; set; }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        [Table(Name = "EDI_ITEM")]
 | 
					        [Table(Name = "EDI_ITEM")]
 | 
				
			||||||
        public class EdiItem
 | 
					        public class EdiItem
 | 
				
			||||||
@@ -131,6 +138,8 @@ namespace FreeSql.Tests
 | 
				
			|||||||
        [Fact]
 | 
					        [Fact]
 | 
				
			||||||
        public void Test03()
 | 
					        public void Test03()
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 | 
					            g.sqlite.Select<Edi>().ToList();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            var itemId2 = 2;
 | 
					            var itemId2 = 2;
 | 
				
			||||||
            var itemId = 1;
 | 
					            var itemId = 1;
 | 
				
			||||||
            var edi = g.sqlite.Select<Edi>()
 | 
					            var edi = g.sqlite.Select<Edi>()
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -84,10 +84,11 @@ namespace FreeSql.Internal
 | 
				
			|||||||
                {
 | 
					                {
 | 
				
			||||||
                    if (common.CodeFirst.IsLazyLoading)
 | 
					                    if (common.CodeFirst.IsLazyLoading)
 | 
				
			||||||
                    {
 | 
					                    {
 | 
				
			||||||
                        var getIsVirtual = p.GetGetMethod()?.IsVirtual;// trytb.Type.GetMethod($"get_{p.Name}")?.IsVirtual;
 | 
					                        var getMethod = p.GetGetMethod();
 | 
				
			||||||
                        var setIsVirtual = setMethod?.IsVirtual;
 | 
					                        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)
 | 
					                        if (getIsVirtual == true || setIsVirtual == true)
 | 
				
			||||||
                            propsLazy.Add(NaviteTuple.Create(p, getIsVirtual == true, setIsVirtual == true));
 | 
					                            propsLazy.Add(NaviteTuple.Create(p, getIsVirtual, setIsVirtual));
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                    propsNavObjs.Add(p);
 | 
					                    propsNavObjs.Add(p);
 | 
				
			||||||
                    continue;
 | 
					                    continue;
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user