c# - 不使用 Alter 命令,删除级联行

标签 c# asp.net sql

我必须删除产品及其图像。图片在单独的表中,productId 充当外键。 这是这样做的单个查询。

string deleteImages = @"DELETE FROM [ProductsImages] WHERE ProductId IN (SELECT ProductId FROM [Products] WHERE ProductId = @ProductId)";
string deleteProduct = @"DELETE FROM [Products] WHERE ProductId = @ProductId";
       db.ExecuteNonQuery(deleteImages);
       db.ExecuteNonQuery(deleteProduct);  

我没有找到避免编写 2 个不同查询的方法,是否可以在不使用 alter 命令的情况下删除级联?

最佳答案

这是您可以在数据库中定义的内容。只需将 Products 和 ProductsImages 之间的外键关系定义为“ON DELETE CASCADE”。删除产品将自动删除所有关联的 ProductImages。

关于c# - 不使用 Alter 命令,删除级联行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19832560/

相关文章:

.net - 在 Web 上显示 Excel 文档

javascript - 局部 View 渲染不正确(ASP.NET MVC)

c# - 在 C# 中将 SQL 查询的结果从一个数据库插入到另一个数据库

mysql - 错误 1148 : The used command is not allowed with this MySQL version

javascript 将控件 ID 传递给回发函数不起作用

sql - 基于前几个字符的情况

c# - 如何将 DateTime 转换为 int?

c# - XmlSerializer - 将属性成员序列化为属性

c# - Unity CS0308 错误

c# - 如何更改 Windows 控件的 `All Desired` 属性?