可版本实体

Versionable Entities

我正在开发一个使用 ASPNET Boilerplate 的项目,其中一些实体必须进行版本控制,因此它们有一个 Id 和一个版本号,其中同一个实体可以有多个版本,例如:

Documents:[
{Document:{id:1, version:1}}, 
{Docuemnt:{id:1, version:2}}]

所以我的问题是是否有一种简单的方法可以做到这一点,比如软删除的实现,我可以在其中拦截更新方法,以便它创建一个新版本。

您可以覆盖 DbContext 中的 ApplyAbpConcepts 以在修改 Document 实体时创建一个新实体,然后重新加载原始实体,以便不保存其更改。 CancelDeletionForSoftDelete 做了类似的事情。

但是仅仅这样做是行不通的,因为主键是唯一的。你可以 .

您还必须处理关系(即外键)以避免链接到多个版本。