我们拥有带有EntityFramework映射的ASP.NET MVC2项目。 alt text http://www.freeimagehosting.net/uploads/552e05f607.jpgSQL Server“在表上删除可能导致周期或多个级联路径”
如何从Structure
表级联删除行从Customer
表中删除行(Customer
表中有“零个或一个 - 许多”与自己和孩子Customers
的delete一个级联协会)?
我们拥有带有EntityFramework映射的ASP.NET MVC2项目。 alt text http://www.freeimagehosting.net/uploads/552e05f607.jpgSQL Server“在表上删除可能导致周期或多个级联路径”
如何从Structure
表级联删除行从Customer
表中删除行(Customer
表中有“零个或一个 - 许多”与自己和孩子Customers
的delete一个级联协会)?
级联删除是我总是远离的东西。了解这是一个很酷的概念,但我还没有看到Cascading Deletes的严格实施。
看了我的咆哮,请继续阅读..
当您执行DELETE语句,SQL Server首先确定所有必须删除的行。它构建了必须包含的所有表的结构以及将要删除的所有行。
任何给定的表都不能多次出现在此列表中,并且从父树中必须有一个到子树的单个路径。
我认为你遇到了这个问题,因为你有一个自我加入客户表。
您将不得不手动删除子行,然后删除父项。
FWIW,我不会放弃外键关系并尝试设置触发器(如下面的KB文章所示)。