我的应用程序遍布一般问题,想知道是否有一种通用的解决方法。
主要问题是当您尝试从已连接的表中删除记录时,如何让用户知道哪些记录已链接。
例如,假设我有两个数据库表。其中Customer有一个branchId字段。
如果我从分支表中删除一条记录,如果有客户在其外键中有该branchId,它将失败。
如果我试图通过代码删除它,我得到一个错误,说它不能删除,因为一个参考完整性约束,但它不让我知道实际链接表是什么或哪些特定记录导致链接。
是否存在处理这种情况的通用C#代码:
答案 0 :(得分:1)
您可以考虑在Branch
表上创建一个触发器,该触发器将引用将要删除的Customer
记录的任何Branch
记录设置为BranchId = null。
这应该允许您删除分支并删除现有客户的任何关联。
Here is an article可以解决类似问题。
请注意,如果您在不知情的情况下开始更改数据,您可能会遇到一些困惑的客户......