无法在 ASP.NET Zero 中启用实体历史记录

2024-02-28

我正在使用 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(使用前将#替换为@)

无法在 ASP.NET Zero 中启用实体历史记录 的相关文章

随机推荐

  • MongoDB C# 2.0 超时异常

    我们最近将 Web 应用程序升级到 MongoDB C Driver 2 0 并部署到生产环境 在一定负载以下 应用程序运行良好 一旦生产服务器上的负载超过一定限制 应用程序的CPU立即降至0 大约30秒后 该异常会被记录多次 System
  • 轮播图像未填充 bootstrap 3 中的宽度

    我对这种响应式的东西太陌生了 我正在尝试使用新 bootstrap 3 中的轮播 但由于某种原因 图像没有填充轮播的宽度 所有图像的尺寸完全相同 1000x395 无论我做什么 它都不会完全填满 非常感谢任何和所有的帮助 这是我正在使用的代
  • 获取当前的 jQuery 选择器字符串?

    调用自定义插件时 如何获取当前选择器字符串 my selector p my plugin 想要输出my selector p在我的脚本中 我怎样才能访问这个字符串 您可以使用selector https api jquery com se
  • Kubernetes客户子域动态绑定

    我有以下用例 我们的客户经常在其 K8s 集群上发布新服务 这些新服务可以通过负载平衡和 Ingress 从外部访问 以便在部署服务后动态配置此负载平衡 这对于我们客户的开发团队来说非常容易 因为他们不必等到有人手动配置负载平衡 他们只需在
  • 点之间的角度?

    我有一个三角形 A B C 我试图找到每对三个点之间的角度 问题是我可以在网上找到的算法是用于确定向量之间的角度 使用向量 我可以计算从 0 0 到我所拥有的点的向量之间的角度 但这并不能给出三角形内的角度 好的 这是在维基百科页面上的方法
  • 使用 Python 在文件行中搜索列表条目

    我有一个包含数万行 ASCII 文本的文本文件 我有一个包含数百个要搜索的关键字的列表 单独考虑每一行 最初 如果有任何匹配项 我想返回 打印到屏幕或文件 该行 但最终我想根据匹配数对返回的行进行排名或排序 所以 我的清单是这样的 keyw
  • 无法使用接口确定 i => i.Id 的序列化信息

    首先 我知道这个错误消息已经存在问题 但我还没有找到任何与使用此类查询的接口相关的问题 我目前正在尝试使用 C 驱动程序 2 0 更新 MongoDB 实体 但是 当我尝试构建查询时出现错误 我假设它是Builders
  • .replace() 之后恢复光标位置

    我最大的问题是 替换后 光标默认位于文本区域的末尾 如果我正在打字 那没有问题 但如果我要返回并编辑 那就真的很烦人了 这是我尝试过的 文本区域的 id 是 区域 var el e area position el selectionSta
  • 实体框架默认连接工厂

    我最近使用实体框架 4 3 创建了一个新的 Web 项目 我正在使用数据库优先设计 实体框架将此部分添加到我的 web config 中 它提供了一些信息性错误消息 我在某处读到此代码与代码优先设计相关 我是否需要它 我是否只需删除它
  • 在 pandas dataframe python 中使用 pii 对特定列进行匿名化

    我已经加载了一个带有 json 文件的 s3 存储桶 并将其解析 压平到 pandas 数据帧中 现在我有一个包含 175 列的数据框 其中 4 列包含个人身份信息 我正在寻找一种快速解决方案 对这些列 名称和地址 进行匿名化 我需要保留多
  • Python pickle 协议选择?

    我使用 python 2 7 并尝试腌制一个对象 我想知道 pickle 协议之间的真正区别是什么 import numpy as np import pickle class Data object def init self self
  • 更改node.js安装目录

    我下载了node js v5 6 0 64位的windows msi 当我执行它时 它弹出警告 无效的E 驱动器 并关闭 无法更改安装驱动器 我没有 E 驱动器 而是想安装到外部驱动器 F 当我的外部驱动器设置为 E 时 我认为以前在 E
  • 将 CSV 导入添加到 ROR 应用程序

    我正在在线订购应用程序中添加批量订单的 CSV 导入 基本上我想做的是用 CSV 数据创建一个购物车 我创建了一个导入控制器 require csv class ImportsController lt ApplicationControl
  • 将数据附加到 exe

    这个问题是我之前问题的答案之一的延伸 如何在exe中保存用户注册 C https stackoverflow com questions 5792793 how to save user registration in the exe c
  • Xcode 13 - 无法打开“/Users/test.xcodeproj”中的项目,因为它采用未来的 Xcode 项目文件格式

    在 Xcode 12 5 中打开使用 Xcode13 创建的项目时 我收到以下错误消息 无法打开位于 Users xcodeproj 的项目 因为它是未来的Xcode项目文件格式 使用兼容版本的Xcode调整项目格式 以允许该版本的Xcod
  • 对真实输入数据进行高效的 2D FFT?

    我目前正在使用 opencl 对真实输入数据实现二维 FFT 更具体地说是使用 FFT 的快速 2D 卷积 所以我只需要一些行为足够相似的东西来应用卷积 2D FFT 是在行上使用 1D FFT 然后在列上使用 1D FFT 来实现的 为了
  • 以另一种形式运行过程

    我有一个表单 运行一个在 Outlook 中创建电子邮件并向其附加 pdf 的过程 它的记录源是不可更新的查询 该程序运行良好 我现在想从另一种形式运行该过程 但我不断收到一条消息 说它无法完成 因为记录源不可更新 新形式的编码为 Priv
  • 如何在 Android 手机启动时打开我的 Android 应用程序? [复制]

    这个问题在这里已经有答案了 可能的重复 如何在启动时启动应用程序 https stackoverflow com questions 6391902 how to start an application on startup 我是 And
  • Oracle 函数:复制 wm_concat

    我目前正在 Crystal Reports 中从事一个项目 该项目拒绝使用未记录的函数 WM CONCAT 而该函数在 Oracle 10g 中是允许的 这里是WM CONCAT头信息 WM CONCAT p1 IN VARCHAR2 RE
  • 无法在 ASP.NET Zero 中启用实体历史记录

    我正在使用 ASP NET 零 项目版本 5 1 0和 NET Core 2 0 模板 我正在尝试为我的实体启用实体历史记录 以便我可以查看表中已删除的列值和旧的列值 实体类 Table TestingEntity Audited publ