From ab06417bee39f7eecc488fff9cc5e5cefee7549b Mon Sep 17 00:00:00 2001 From: 2881099 <2881099@qq.com> Date: Sat, 11 Jun 2022 20:15:51 +0800 Subject: [PATCH] =?UTF-8?q?-=20=E4=BC=98=E5=8C=96=20XML=20=E6=B3=A8?= =?UTF-8?q?=E9=87=8A=E8=AF=BB=E5=8F=96=E6=94=AF=E6=8C=81=20interface?= =?UTF-8?q?=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Examples/base_entity/Program.cs | 13 ++++++++++++ Examples/base_entity/base_entity.xml | 5 +++++ FreeSql/Internal/CommonUtils.cs | 31 +++++++++++++++------------- 3 files changed, 35 insertions(+), 14 deletions(-) diff --git a/Examples/base_entity/Program.cs b/Examples/base_entity/Program.cs index 9afddbb3..311acc99 100644 --- a/Examples/base_entity/Program.cs +++ b/Examples/base_entity/Program.cs @@ -265,6 +265,18 @@ namespace base_entity public string Name { get; set; } } + interface IDeleteSoft + { + /// + /// 软删除 + /// + bool IsDeleted { get; set; } + } + class TestComment01 : IDeleteSoft + { + public bool IsDeleted { get; set; } + } + static void Main(string[] args) { #region 初始化 IFreeSql @@ -313,6 +325,7 @@ namespace base_entity BaseEntity.Initialization(fsql, () => _asyncUow.Value); #endregion + fsql.CodeFirst.GetTableByEntity(typeof(TestComment01)); fsql.Select(); diff --git a/Examples/base_entity/base_entity.xml b/Examples/base_entity/base_entity.xml index 430381e1..c340101f 100644 --- a/Examples/base_entity/base_entity.xml +++ b/Examples/base_entity/base_entity.xml @@ -74,6 +74,11 @@ 创建日期2 + + + 软删除 + + 角色表 diff --git a/FreeSql/Internal/CommonUtils.cs b/FreeSql/Internal/CommonUtils.cs index d72cd338..786bc2b3 100644 --- a/FreeSql/Internal/CommonUtils.cs +++ b/FreeSql/Internal/CommonUtils.cs @@ -635,25 +635,28 @@ namespace FreeSql.Internal if (string.IsNullOrEmpty(comment) == false) dic.Add("", comment); //class注释 } - var props = localType.GetPropertiesDictIgnoreCase().Values; - foreach (var prop in props) + foreach (var entityType in localType.GetInterfaces().Concat(new[] { localType })) { - className = (prop.DeclaringType.IsNested ? $"{prop.DeclaringType.Namespace}.{prop.DeclaringType.DeclaringType.Name}.{prop.DeclaringType.Name}" : $"{prop.DeclaringType.Namespace}.{prop.DeclaringType.Name}").Trim('.'); - node = xmlNav.SelectSingleNode($"/doc/members/member[@name='P:{className}.{prop.Name}']/summary"); - if (node == null) + var props = entityType.GetPropertiesDictIgnoreCase().Values; + foreach (var prop in props) { - if (level == 0 && prop.DeclaringType.Assembly != localType.Assembly) + className = (prop.DeclaringType.IsNested ? $"{prop.DeclaringType.Namespace}.{prop.DeclaringType.DeclaringType.Name}.{prop.DeclaringType.Name}" : $"{prop.DeclaringType.Namespace}.{prop.DeclaringType.Name}").Trim('.'); + node = xmlNav.SelectSingleNode($"/doc/members/member[@name='P:{className}.{prop.Name}']/summary"); + if (node == null) { - var cbs = LocalGetComment(prop.DeclaringType, level + 1); - if (cbs != null && cbs.TryGetValue(prop.Name, out var otherComment) && string.IsNullOrEmpty(otherComment) == false) - dic.Add(prop.Name, otherComment); + if (level == 0 && prop.DeclaringType.Assembly != entityType.Assembly) + { + var cbs = LocalGetComment(prop.DeclaringType, level + 1); + if (cbs != null && cbs.TryGetValue(prop.Name, out var otherComment) && string.IsNullOrEmpty(otherComment) == false) + dic.Add(prop.Name, otherComment); + } + continue; } - continue; - } - var comment = node.InnerXml.Trim(' ', '\r', '\n', '\t'); - if (string.IsNullOrEmpty(comment)) continue; + var comment = node.InnerXml.Trim(' ', '\r', '\n', '\t'); + if (string.IsNullOrEmpty(comment)) continue; - dic.Add(prop.Name, comment); + dic.Add(prop.Name, comment); + } } } return dic;