【问题标题】:Soft delete on Parent Entity but Hard delete on Child/Relationship EF Core父实体上的软删除,但子/关系 EF Core 上的硬删除
【发布时间】:2021-07-22 16:03:52
【问题描述】:

我有 3 个实体在 EF Core 中生成 Code First:UserProjectUserProject(多对多关系)。到目前为止,我在User 上使用了硬删除,这实际上是级联到关系中的。 有没有办法在 User 上实现软删除并硬删除其他人,而无需手动检查引用它的其他关系中的 isDeleted 标志? 有什么方法可以通过自定义操作触发 OnDelete/OnUpdate? 示例:将 OnDelete 定义为更新 isDeletedFlag,在这种情况下,我想对引用用户的每个其他实体执行硬删除/设置 null。

【问题讨论】:

  • 为什么不把所有东西都软删除? (每次我混合这些方法时,我都希望后来我没有)
  • 如果项目处于规划阶段,这将是一个好方法。最初使用硬删除,数据库已经完成,关系,很多,更新它们会有点痛苦。

标签: c# .net entity-framework entity-framework-core


【解决方案1】:

您可以使用 ef 核心触发器。您可以在使用任何方法将更改保存到任何特定实体之前定义触发器。但它仅在 .net 5 和 .net 6 中可用

https://github.com/koenbeuk/EntityFrameworkCore.Triggered

https://youtu.be/Gjys0Yebobk

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-07-09
    • 1970-01-01
    • 2022-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-20
    • 1970-01-01
    相关资源
    最近更新 更多