【问题标题】:EF Core audits for cascade deleted valuesEF Core 审核级联删除值
【发布时间】:2016-09-30 12:11:53
【问题描述】:

我有一个使用 ef-core 代码优先方法构建的项目的审核机制。我已将“DeleteBehavior”属性设置为“OnModelCreating”函数中某些表的级联。当我删除一个实体时,另一个实体会通过级联删除行为自动删除。现在一切都很好,我需要获取所有已删除的实体,但我不能。 ChangeTracker 不包含级联删除的实体。如何获得级联删除的值?有没有办法做到这一点?

【问题讨论】:

  • 你能展示你的代码吗?
  • 好吧,您可以从数据库中获取实体,但这完全违背了级联删除的目的。底线是:客户端应用程序永远无法审计仅在数据库中发生的事情。 Only the database can.

标签: ef-code-first entity-framework-core audit


【解决方案1】:

级联删除发生在数据库端。 Entity Framework 不需要知道哪个实体会被删除。

Entity Framework 仅跟踪更改并删除基础对象。

编辑:回答子问题

你是对的。我是 EF+ 的所有者。

从技术上讲,库可以处理这个问题,但这会带来严重的性能缺陷。我不知道有任何功能或库可以处理级联删除场景以进行审计。

建议?

有一些建议,但我很确定您不会喜欢其中任何一个,出于性能原因我也不推荐它们:

  • 不要使用级联删除(强制您同时检索/删除相关实体)

  • 在数据库端创建 ON DELETE 触发器和日志。

我认为这种情况没有好的解决方案。

【讨论】:

  • 我假设您是 EF+ 的创建者,对吗?那么,有没有办法用你的图书馆来处理这种情况?如果没有,你有什么建议?
  • 感谢您的回答,非常有帮助:)
猜你喜欢
  • 1970-01-01
  • 2018-07-19
  • 2018-08-29
  • 1970-01-01
  • 1970-01-01
  • 2021-08-22
  • 1970-01-01
  • 2018-03-13
相关资源
最近更新 更多