问题标签 [cascading-deletes]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
724 浏览

c# - 实体框架自引用实体删除

我有这样的文件夹结构:

问题是如何级联删除它们(即,当删除文件夹 2 时,所有子项也被删除)。我无法设置 ON DELETE 操作,因为 MSSQL 不允许这样做。你能给一些建议吗?

更新:我写了这个存储过程,我可以留下它还是需要一些修改?

0 投票
3 回答
1669 浏览

c# - C# - 预测文件夹删除时的文件系统事件

这更像是一个关于实现这一点的最佳实践的问题。

我有一个FileSystemWatcher应该通知我用户对文件和文件夹的更改。还监视子目录。在同一目录中,我的程序有时也会发生变化。我不想FileSystemWatcher检测这些程序更改的事件。

我的第一个实现是一个可以添加预期事件的列表。当我收到文件系统事件时,我会检查列表,如果存在则忽略它。这听起来不是很强大,但它似乎有效。

现在我发现了真正的问题:
D: 被FileSystemWatcher.
我有两个这样的文件夹: D:\folder1\folder2
现在我想用我的应用程序删除 folder1(其中包含 folder2)。所以我把 D:\folder1 放在我的删除列表中。然后我打电话给类似的东西Directory.Delete(@"D:\folder1", true)。现在我注意到 folder1 不能因为异常而被删除(为什么)。我从列表中删除了删除条目,但文件夹 2 已被删除,我得到了他的 FileSystemEvent。所以我得到了 D:\folder1\folder2 的 FileSystem 事件。我的程序认为现在用户已经删除了这个文件夹并且做错了事情。

我现在有一些想法:

1.)通过删除它自己的每个文件和每个文件夹来递归删除文件夹。有了这个,我得到每个子文件夹并归档一个自己的列表条目。我已经实现了它,但它非常非常非常慢。

2.)也许有更好的方法可以FileSystemWatcher让我的列表过时?

3.)如果可以删除所有内容,也许只能删除目录树。所以如果它失败了,我仍然拥有一切,如果不是,一切都被删除。这对我来说似乎是最优雅的解决方案,但不知道这是否可能?

4.) 是否可以通过我的软件独占锁定所有文件和文件夹?如果这一切正常,应该可以使用一个删除命令或类似的方式删除所有内容?

我也愿意接受其他额外的解决方案。

编辑 1 使其更清晰:

我只想“查看”文件夹上的用户操作。如果我在这里操作我的程序中的东西,我不想看到这些事件。

通过我的实现,如果文件夹被锁定并且无法删除,我会收到子文件夹的事件。

用英语解释并不容易,因为我不是英语母语人士;)。

编辑2:

5.) 也许可以FileSystemWatcher从定义的流程中过滤所有事件?

0 投票
1 回答
910 浏览

objective-c - 核心数据是立即删除具有级联删除规则的对象还是保存时删除对象?

在 Core Data 模型中,实体 A 与实体 B 有关系,删除规则设置为Cascade。对象 B 是在调用时立即删除[context deleteObject:A],还是 Core Data 等待 [context save:&error] 方法,就像对象验证一样?

我想知道删除 A 后是否可以创建一个对象 C,然后在上下文中搜索 B 并建立关系。这会阻止B被删除吗?

干杯,埃里克-保罗。

0 投票
2 回答
2183 浏览

sql-server - 链接表上的级联删除连接 2 个表,每个表都有一个级联删除到另一个表。如何?

让我们假设以下对象是 SQL 中的表:

  • Companies
  • Employees(指公司)
  • Meetings(也指公司)

员工可以参加会议,所以我们有一个链接表:

  • EmployeeMeetings(即对员工和会议的 FK)

此外,我无法触摸 Companies 表(例如,对此没有触发器)。我想要的是:

  1. 如果公司被移除,所有员工都会被移除
  2. 如果公司被删除,所有会议都将被删除
  3. 如果员工或会议被删除,所有EmployeeMeeting记录都会被删除

不幸的是,我被困住了,因为这会引发可怕的“可能导致循环或多个级联路径”。鉴于限制,如何解决这个问题?我想我什至不能同时将两个 FK 都放入,否则存在删除公司后无法删除员工或会议的风险,因为 FKEmployeeMeetings会阻止这种情况发生。正确的?

0 投票
0 回答
220 浏览

sql-server-2005 - 将“软删除”添加到现有系统

我有一个系统,其中包含很多存储过程,TableA例如运行的函数。我们需要一种能够删除这些订单的方法,同时将它们记录在案。

我们考虑过的一个选项是在其中添加一个Delete字段,TableA然后通过所有的存储过程和函数添加:

我们考虑的另一个选项是创建一个视图,称为v_TableAthen 遍历并更改所有存储过程和函数以从该视图读取,而不是从表中读取。

两者都涉及大量工作,并且在将来对系统进行更改时需要记住。

我希望有更好的方法来做到这一点:

但我知道这是不可能的。任何帮助将非常感激。

0 投票
1 回答
29098 浏览

sql - MS SQL“ON DELETE CASCADE”多个外键指向同一个表?

我有一个问题,我需要在指向同一个表的多个外键上进行级联..

基本上,当洞察表中的一两条记录被删除时,我也需要删除该关系..

我试过这个:

这导致级联“可能导致循环或多个级联路径”的警告

所以我尝试将级联添加到insight_id,结果是:

DELETE 语句与 REFERENCE 约束冲突

有任何想法吗?

谢谢

丹尼尔

0 投票
1 回答
838 浏览

c# - 首先使用 EF4 CTP5 代码,没有级联删除

我首先使用代码并使用以下语句关闭所有外键的级联删除:

我有两个类 Invoice 和 InvoiceLine

当我要删除发票及其所有相关发票行时会出现问题以下代码有效:

但是当我在 for 循环中删除 SaveChanges 操作时,它不起作用。

为什么我必须执行中间 SaveChanges ? *为什么我必须为 invoicelines 调用 DeleteObject 方法而不是 remove 方法?*

0 投票
2 回答
14404 浏览

entity-framework-4 - 实体框架:使用 CodeFirst 设置删除规则

我正在使用 EF4 CTP 5,CodeFirst。

请先看我的课:

我的目标是为客户语言关系设置一定的“删除规则”。当一种语言被删除时,我不想删除相应的客人(所以没有级联删除)。相反,我希望客人的 LanguageID 为“Set NULL”。

我希望流畅的 API 在这里支持我。但是除了 .WillCascadeOnDelete(bool) 之外,我找不到任何有用的东西,它没有提供我需要的选项。我错过了什么吗?或者这只是没有在 CTP 5 中实现?

谢谢你的帮助!

0 投票
1 回答
500 浏览

ruby-on-rails - Rails:删除用户而不丢失关联(或其他让用户离开的方法)

我有一个 Rails 应用程序,可以让用户创建各种“判断”,一切都有点交织,我们有几个类连接到 User 类。

当我让用户“销毁”他们的帐户时,显然他们所拥有的关联会给我一个nil对象。因此,例如,当我遍历所有判断时,如果该特定用户删除(销毁)他们的帐户,我将无法获得创建判断的用户。

  • 对于这种情况,Rails 中的最佳实践是什么?
  • 是否可以将用户标记为不活动但仍保留其帐户?
  • 我可以删除用户帐户并替换其他类中的相关信息吗?
0 投票
1 回答
1263 浏览

symfony1 - symfony 1.4 链接相关表的 preDelete 事件

有没有办法在 Symfony 1.4 中链接 preDelete() 事件?

我有两张桌子:一张主人和一张奴隶。在 schema.yml 中,我定义了它们,以便在删除主记录时从属记录 CASCADE 删除。

而且,从属删除过程需要运行一些预处理,我打算在从属记录定义的 preDelete 事件方法中进行编码。

如果我单独删除从属记录,我可以得到这个 preDelete() 事件,但如果我通过主记录删除从属记录,我只能访问主记录定义中的 preDelete() 事件。我可以通过master的方式访问slave中的preDelete事件吗?

相关代码如下:

架构.yml

lib/model/doctrine/Master.class.php

lib/model/doctrine/Slave.class.php