代码之家  ›  专栏  ›  技术社区  ›  Nicolás Aguirrezarobe

可版本化实体

  •  0
  • Nicolás Aguirrezarobe  · 技术社区  · 7 年前

    我正在使用ASPNET样板文件处理一个项目,其中一些实体必须进行版本控制,因此它们有一个Id和一个版本号,其中同一实体可以有多个版本,如:

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

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

    1 回复  |  直到 7 年前
        1
  •  0
  •   aaron    7 年前

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

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

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