首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从LINQ数据库中删除是否也会删除具有外键关联的其他表中的记录?

从LINQ数据库中删除是否也会删除具有外键关联的其他表中的记录?
EN

Stack Overflow用户
提问于 2010-01-06 05:45:59
回答 2查看 1.7K关注 0票数 0

因此,在我的数据库的根目录中,我有一个表“Customer”。客户有6-7个其他表的外键,如收据、地址、文档等。如果我使用SubmitChanges()删除一个客户,是否会找出所有具有外键关联的记录并将其删除,或者我是否需要进行6次查询?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-01-06 05:48:29

只有在设置了数据库表以使用级联删除(即on delete cascade)来执行此操作时,才会发生这种情况。

有关更多信息,请访问Insert, Update, and Delete Operations (LINQ to SQL)

SQL to

不支持或不识别级联删除操作。如果要删除表中具有约束的行,则必须在数据库的外键约束中设置ON delete CASCADE规则,或者使用您自己的代码首先删除阻止父对象被删除的子对象。否则,将抛出异常。

票数 2
EN

Stack Overflow用户

发布于 2010-01-06 05:49:09

你对这些外键关系有什么样的级联作用?

默认情况下,大多数数据库系统(包括我假定您使用的SQL Server )都不会有任何"ON DELETE CASCADE“或任何其他操作-所以在这种情况下,不会发生任何事情。

此T-SQL查询将显示您的外键关系,以及是否定义了任何DELETE或UPDATE引用操作:

代码语言:javascript
运行
复制
SELECT
    name 'FK Constraint',
    OBJECT_NAME(parent_object_id) 'Parent table',
    OBJECT_NAME(referenced_object_id) 'Referenced table',
    delete_referential_action ,
    delete_referential_action_desc ,
    update_referential_action ,
    update_referential_action_desc 
FROM 
    sys.foreign_keys

如果你想要某些事情发生,你需要确保这些FK关系被设置为使用这些级联操作。

有关更多详细信息,请参阅Cascading Referential Integrity Constraints上的MSDN文档。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2009327

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档