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