我正在使用 ASP.NET 零。项目版本:5.1.0和.NET Core 2.0 模板。我正在尝试为我的实体启用实体历史记录,以便我可以查看表中已删除的列值和旧的列值。
实体类:
[Table("TestingEntity")]
[Audited]
public class TestingEntity : AuditedEntity , IMayHaveTenant
{
public int? TenantId { get; set; }
public virtual string Code { get; set; }
}
应用程序模块类:
public class MyCompanyApplicationModule : AbpModule
{
public override void PreInitialize()
{
// ...
Configuration.EntityHistory.IsEnabledForAnonymousUsers = true;
Configuration.EntityHistory.Selectors.Add(new NamedTypeSelector("Abp.AuditedEntities", type => typeof(IAudited).IsAssignableFrom(type)));
}
// ...
}
运行以下查询不会给出任何结果。
SELECT * FROM [AbpEntityChangeSets]
SELECT * FROM [AbpEntityPropertyChanges]
SELECT * from [AbpEntityChanges]
参考: https://aspnetboilerplate.com/Pages/Documents/Entity-History https://aspnetboilerplate.com/Pages/Documents/Entity-History
Update
当我删除实体项目时,它没有给出正确的结果。
它为每个属性插入新旧值相同的记录[AbpEntityPropertyChanges]
table.
并且没有明确的信息表明该实体项被删除、其删除时间和DeletedBy。
这是由于使用AuditedEntity
在我的实体类中?我使用的是硬删除,所以我想不要将这些列添加到表中:已删除、删除时间和删除者。
实体历史记录在 ASP.NET Zero 中被禁用。您可以启用它:
Configuration.EntityHistory.IsEnabled = true;
Update
当我删除实体项目时,它没有给出正确的结果。
它为每个属性插入新旧值相同的记录[AbpEntityPropertyChanges]
table.
这已经在 PR 中解决了#2977 https://github.com/aspnetboilerplate/aspnetboilerplate/pull/2977,将随 ABP v3.5 一起发布。
并且没有明确的信息表明该实体项被删除、其删除时间和DeletedBy。
这是由于使用AuditedEntity
在我的实体类中?我使用的是硬删除,所以我想不要将这些列添加到表中:已删除、删除时间和删除者。
你不会在其中找到那些AbpEntityPropertyChanges
表,因为这些不是属性更改。
- 该实体的信息was已删除:EntityChange.ChangeType https://github.com/aspnetboilerplate/aspnetboilerplate/blob/ac9c170e339e5a88907ca9d372489ee4bfccd6d8/src/Abp/EntityHistory/EntityChange.cs#L33
- 其删除时间:EntityChangeSet.CreationTime https://github.com/aspnetboilerplate/aspnetboilerplate/blob/ace6e289af88481d014eababb6f587b028abb7b3/src/Abp/EntityHistory/EntityChangeSet.cs#L54
- 删除者:EntityChangeSet.UserId https://github.com/aspnetboilerplate/aspnetboilerplate/blob/ace6e289af88481d014eababb6f587b028abb7b3/src/Abp/EntityHistory/EntityChangeSet.cs#L85
附加信息
-
之间的关系AbpEntityChangeSets
and AbpEntityChanges
表:EntityChange.cs https://github.com/aspnetboilerplate/aspnetboilerplate/blob/eb9508d0c1b14e5d3f0f53c826d2e3c5bb779bf8/src/Abp/EntityHistory/EntityChange.cs#L35-L38
public class EntityChange : Entity<long>, IMayHaveTenant
{
/// <summary>
/// Gets/sets change set id, used to group entity changes.
/// </summary>
public virtual long EntityChangeSetId { get; set; }
// ...
}
-
的可能值EntityChange.ChangeType
: EntityChangeType.cs https://github.com/aspnetboilerplate/aspnetboilerplate/blob/b4f5bf2e12f2e5902f3ae10683f3c047ee121375/src/Abp/Events/Bus/Entities/EntityChangeType.cs
public enum EntityChangeType : byte
{
Created = 0,
Updated = 1,
Deleted = 2
}
我们有计划为此功能添加 UI 吗?这样我们就可以从 UI 中看到实体历史记录。
这已添加到 ASP.NET Zero 中5.4.0.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)