我在我的项目中使用EF 6,当我想从表中删除一行时,它会抛出异常,因为该行在另一个表中被引用。我想知道哪个表阻止我用c#代码和EF删除。
我们在表A中有一条记录,该表在表C中引用而不在表B中引用。是否可以通过EF知道表C阻止我删除该行?
我也在使用Sql-Server 2012。
答案 0 :(得分:0)
如果您尝试在运行时动态对其进行排序以向用户显示或在删除尝试之前确定,并且您不确定可能的冲突,则可以使用sys表和一些动态sql对其进行排序。
sys.objects
查找您的表名并获取object_id。sys.foreign_keys
查找引用您的表格的表格。foreign_key_columns
获取引用的确切列号。sys.columns
获取相应的列名称。sys.objects
中查找的表格。 (可选)列出行数。