From de6e99c710df060453262eee1d84b231ac16c757 Mon Sep 17 00:00:00 2001 From: 28810 <28810@YEXIANGQIN> Date: Sun, 1 Sep 2019 11:12:52 +0800 Subject: [PATCH] =?UTF-8?q?-=20=E4=BF=AE=E5=A4=8D=20=E5=AF=BC=E8=88=AA?= =?UTF-8?q?=E5=B1=9E=E6=80=A7=E9=85=8D=E7=BD=AE=E5=92=8CAop=E5=86=B2?= =?UTF-8?q?=E7=AA=81=E7=9A=84=20bug=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FreeSql.Tests/FreeSql.Tests/UnitTest1.cs | 32 ++++++++++++++++++++++++ FreeSql/Internal/UtilsExpressionTree.cs | 4 +-- 2 files changed, 34 insertions(+), 2 deletions(-) diff --git a/FreeSql.Tests/FreeSql.Tests/UnitTest1.cs b/FreeSql.Tests/FreeSql.Tests/UnitTest1.cs index 71b6e582..efc884c6 100644 --- a/FreeSql.Tests/FreeSql.Tests/UnitTest1.cs +++ b/FreeSql.Tests/FreeSql.Tests/UnitTest1.cs @@ -385,9 +385,41 @@ namespace FreeSql.Tests } + [Table(Name = "bz_web_post")] + public class Post + { + public int Id { get; set; } + public int AuthorId { get; set; } + [Navigate("AuthorId")] + public AuthorTest Author { get; set; } + } + [Table(Name = "bz_web_authortest")] + public class AuthorTest + { + public int Id { get; set; } + public string Name { get; set; } + [Navigate("AuthorId")] + public List Post { get; set; } + } + [Fact] public void Test1() { + IFreeSql fsql = new FreeSql.FreeSqlBuilder() + .UseConnectionString(FreeSql.DataType.PostgreSQL, "Host=192.168.164.10;Port=5432;Username=postgres;Password=123456;Database=tedb;Pooling=true;Maximum Pool Size=7") + .UseEntityPropertyNameConvert(Internal.StringConvertType.PascalCaseToUnderscoreWithLower) + .UseNoneCommandParameter(true) + .UseAutoSyncStructure(true) //自动同步实体结构到数据库 + .UseMonitorCommand(a => Trace.WriteLine(a.CommandText)) + .Build(); + + var data = fsql.Select().ToList(r => new + { + Id = r.Id, + Name = r.AuthorId.ToString(), + AuthorName = r.Author.Name, + }); + //g.mysql.Aop.AuditValue += (s, e) => //{ // if (e.Column.CsType == typeof(long) diff --git a/FreeSql/Internal/UtilsExpressionTree.cs b/FreeSql/Internal/UtilsExpressionTree.cs index ec2d91f5..b6389fed 100644 --- a/FreeSql/Internal/UtilsExpressionTree.cs +++ b/FreeSql/Internal/UtilsExpressionTree.cs @@ -75,8 +75,7 @@ namespace FreeSql.Internal var setMethod = trytb.Type.GetMethod($"set_{p.Name}"); var colattr = common.GetEntityColumnAttribute(entity, p); var tp = common.CodeFirst.GetDbInfo(colattr?.MapType ?? p.PropertyType); - if (tp == null && colattr != null) colattr.IsIgnore = true; //无法匹配的属性,认定是导航属性,且自动过滤 - if (tp == null && colattr == null) + if (tp == null && colattr?.IsIgnore != true) { if (common.CodeFirst.IsLazyLoading) { @@ -88,6 +87,7 @@ namespace FreeSql.Internal propsNavObjs.Add(p); continue; } + if (tp == null && colattr != null) colattr.IsIgnore = true; //无法匹配的属性,认定是导航属性,且自动过滤 if (colattr == null) colattr = new ColumnAttribute {