MVC3在删除之前检查对模型记录的引用

时间:2012-01-23 01:30:54

标签: asp.net asp.net-mvc-3

在删除该记录之前,检查是否存在对特定模型记录的任何引用的最佳做法是什么?基本上,我有一个表示图像的模型,以及与图像相关的所有元数据。其他模型将引用一个或多个图像(取决于模型)。

比方说,我有一个“Item”,它有一个“MainImage”和一个“AltImage”,两者都只是对Image模型的引用。如果我删除了一个项目记录,我必须检查这两个图像是否被任何其他项目或任何其他表格引用,如果没有,则删除该图像。
我该怎么做呢?

2 个答案:

答案 0 :(得分:0)

由于您使用的是数据库,因此请使用映像上的外键约束来保持参照完整性。数据库或EF将阻止您删除仍在引用的图像。您可以捕获此异常并继续处理请求而不删除图像。

我发现了一篇发布Inferring Foreign Key Constraints in EF的博客,可能会对其进行设置。

答案 1 :(得分:0)

根据您的喜好结合想法:

在DB中创建触发器

那将删除alt img。 每当你想删除主记录行时,其他记录也将被删除。

另一个(基于nhibernate)

确保实体框架中的替代图像可能会级联命令。在这种情况下,如果删除一个图像,另一个图像也将被删除。 Here is one example from google how to do this

最笨拙但最简单的是:

删除图像时删除两个记录。

相关问题