当前位置: 首页 > 知识库问答 >
问题:

EF核心审核级联删除值

周凯捷
2023-03-14

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

共有1个答案

燕和同
2023-03-14

级联删除发生在数据库端。实体框架不需要知道将删除哪个实体。

实体框架仅跟踪更改并删除基本对象。

编辑:回答子问题

你说得对。我是英孚的老板。

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

建议

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

>

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

    创建ON DELETE触发器并在数据库端登录。

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

  •  类似资料:
    • 我目前对EF Core有一些问题。我有一些需要删除的数据,我正在努力查看流畅的API是如何工作的,正是关于函数。 考虑到微软自己网站的经典博客/帖子场景,我想知道到底是什么实体,OnDelete()是“目标”(因为没有更好的词),在某些情况下,它似乎是博客,在另一些情况下,是帖子。是否可以从两侧定义级联删除(即当父博客被删除时,帖子被删除),如果是这样,我认为代码应该如下所示: <代码>模型。实体

    • 我有一个地址模型,它适用于我系统中的所有模型,如下所示: 在OnModelCreating中: 它的工作非常好!我唯一的问题是关于级联删除。如何设置此方案: 删除某人时,级联删除PersonalAddress和Addresses 删除地址时,级联删除PersonalAddress而不是Person 目前我看到删除Person会删除Person地址(但不会删除相关地址)。 我并不是在抱怨这种行为,但

    • 升级核心3.0后,无法在包管理器中添加迁移。这是我的错误

    • 我的问题和这个差不多。 ASP。Net Core与EF Core和CosmosDB-身份问题 提供的答案不起作用。这会产生其他问题。当我从升级我的应用程序时,这些错误开始出现。NET Core 3.1 to。净5。降级应用程序使所有错误都消失了。显然,这个问题与efcore 5中引入的对cosmos的乐观并发支持有关。 https://docs.microsoft.com/en-us/ef/cor

    • 创建后,是否可以提取用于创建它的? (也许可以通过使用类似于,EF架构体系服务等)

    • 问题内容: 不幸的是,新的Core Data语义使我发疯。我之前的问题有一个干净的代码,因为头文件的自动生成不正确,因此无法正常工作。现在,我继续删除对象的工作。我的代码似乎很简单: 我用代替进行了“硬”调试,它向我展示了正确的对象。所以我只需要删除它。 PS没有。现在NSManagedContext只有 问题答案: 在您的情况下,提取的结果是托管对象 的 数组,因此您可以枚举该数组并删除所有匹配