获取linq中引用列的所有引用列

时间:2010-06-14 17:23:50

标签: c# linq foreign-keys

假设您有一个名为Sales的表,其中包含SalesOrderId。然后,您有两个表SalesOrderHeader和SalesReport,它们引用SalesOrderId。从Sales Tables和SalesOrderId开始,有没有办法找出使用linq的那两个表引用它?我想在我的代码中添加一个Debug.Assert,以便每当针对列添加另一个外键约束时我都可以更新该段代码。

1 个答案:

答案 0 :(得分:1)

在数据库方面,这些可能有所帮助:

SELECT *
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
WHERE CONSTRAINT_TYPE = 'FOREIGN KEY'

SELECT [name] as FKeyName,
  (SELECT o1.[name] from sys.objects o1 where
    o1.[object_id] = fk.parent_object_id) as ParentTableName,
  (SELECT o2.[name] from sys.objects o2 where
    o2.[object_id] = fk.referenced_object_id) as ReferencedTableName
FROM sys.foreign_keys fk

如果您确实需要列名,请在系统存储过程中弹出sp_helpconstraint并从那里提取逻辑。


在设计器方面,dbml文件是xml ...查找Database.Table.Type.Association