我有一个使用ef-core代码第一种方法构建的项目的审计机制。我已经设置了" DeleteBehavior"某些表级联的属性" OnModelCreating"功能。删除实体时,另一个实体通过级联删除行为自动删除。这一切都很好,我需要获得所有已删除的实体,但我不能。 ChangeTracker不包含级联删除的实体。如何获取级联删除的值?有没有办法做到这一点?
答案 0 :(得分:1)
级联删除发生在数据库端。实体框架不需要知道哪个实体将被删除。
实体框架仅跟踪更改并删除基础对象。
修改:回答子问题
你是对的。我是EF +的所有者。
从技术上讲,库可以处理这个问题,但这会带来严重的性能缺陷。我不知道任何处理级联删除方案以进行审计的功能或库。
建议?
有一些建议,但我很确定你不会喜欢它们中的任何一个,我也不会因为性能原因而推荐它们:
不要使用级联删除(强制您还检索/删除相关实体)
在数据库端创建ON DELETE触发器和日志。
我认为这种情况不存在一个好的解决方案。