我有一个Customers表,一个Sports表和Customers_Sports连接表。最后一个表告诉我哪些客户玩什么体育,即包含其他两个表的外键。
强制执行外键约束,外键不能为空。
使用LINQ,是否有一种删除客户的简单方法,同时删除引用该客户的连接表中的所有记录?
我可以这么做,即先从连接表中删除相关记录,然后从客户中删除客户的记录。
答案 0 :(得分:0)
简单是真正的踢球者。 There's not an automatic way to do it.您基本上无法从Customer_Sports表中删除与给定客户匹配的所有内容,然后自行删除客户。我相信如果你在执行SubmitChanges()
之前删除它们,就不应该遇到任何外键约束违规。
如果你想真正想象,你可以使用反射来创建一个通用函数,只要有Linq to SQL cascading delete with reflection之类的外键,就可以这样做。
设置数据库为您执行此操作可能不易出错。性能也可能更好,但除非你知道你有性能问题,否则你不应该担心性能。