ASP.NET MVC 3 C#MySQL,在控制器中使用删除级联功能还是删除行?

ASP.NET MVC 3 C#MySQL,在控制器中使用删除级联功能还是删除行?,mysql,asp.net-mvc,cascade,sql-delete,Mysql,Asp.net Mvc,Cascade,Sql Delete,我需要有经验的人的意见 mySQL情况,2个表,一对多关系: 我有一个带有A_id(PK)和A_名称的表A,还有一个带有B_id(PK)和B_foto以及A_id(FK到表A(A_id))的表B 如果我将FK设置为DELETE CASCADE(删除级联)选项,然后删除表a中的一行,那么表B中引用到a_id的所有行都将被删除,对吗?确定 但是,如果B#foto是一个字符串,带有指向某个文件图像的路径,并且我也想删除该文件,那么我最好不要使用ON delete CASCADE选项,并在Control

我需要有经验的人的意见

mySQL情况,2个表,一对多关系:

我有一个带有A_id(PK)和A_名称的表A,还有一个带有B_id(PK)和B_foto以及A_id(FK到表A(A_id))的表B

如果我将FK设置为DELETE CASCADE(删除级联)选项,然后删除表a中的一行,那么表B中引用到a_id的所有行都将被删除,对吗?确定

但是,如果B#foto是一个字符串,带有指向某个文件图像的路径,并且我也想删除该文件,那么我最好不要使用ON delete CASCADE选项,并在Controler(C#)中手动选中manualy,如果表B对a有一些引用,并且手动删除行,因为我也想删除de文件

如果我使用ON DELETE CASCADE选项,我将失去对要删除的文件的引用。对吗

如果我保留ON DELETE CASCADE选项,首先检查表B中对表A的引用,只删除文件,然后删除表A中的行,它(mySQL)删除表B中的de行


希望您能就这个问题向我解释。

选择后者似乎是更可靠的解决方案,因为除非删除成功,否则您不需要将更改提交到数据库


虽然没有单一的方法可以做到这一点,但使用级联删除仍然是一个有效的选项,您只需要查看执行顺序;)遍历文件,处理删除,成功后删除父行。

谢谢您的回答,也许您可以投票表决我的问题,它将帮助其他有同样疑问的人。。我想我将迭代de-child表来删除de-files,然后删除父表行,然后(使用on-delete-cascade)删除我已经删除了相应文件的de-child行。。