【发布时间】:2011-05-12 16:04:12
【问题描述】:
我们有一个系统,允许管理员在系统内构建新的内容类型,包括与其他表的外键链接。然后管理员可以重建数据库,此时它会创建表和所有必要的关系,然后重建 EDMX 并重新编译所有内容。像冠军一样工作(不是我写的,否则我可能知道答案)。
我们的一个缺点是当用户删除一条可能被另一个表中的项目链接到的记录时。由于参照完整性,这会引发错误。当然,我正在捕捉这一点,但我现在所能提供的只是一个通用的“你不能删除这个项目,因为它与某些东西相关联”类型的错误。我宁愿检查该项目是否可删除,如果不是,则禁用该按钮。
有没有一种方法可以在运行时确定要删除的项目链接到哪个表/行?通常,我只是查询相关表,但由于这个应用程序的性质,我不知道其他表在设计时会是什么。
简而言之,如果我有:
Foo: FooID, FooName 栏:BarID、FooID、BarName Pow:PowID、FooID、PowName
是否可以在运行时判断 Foo 中的一行由于来自 Bar 或 Pow 的 FK 链接而无法删除,如果是,我可以判断哪个表导致错误?
提前致谢;第一次在这里发帖,所以请原谅任何礼仪错误:)。
【问题讨论】:
标签: entity-framework reflection foreign-keys entity foreign-key-relationship