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;