C# 将所有引用列获取到linq中的引用列
假设您有一个名为Sales的表,该表具有SalesOrderId。然后有两个引用SalesOrderId的表SalesOrderHeader和SalesReport。从Sales表和SalesOrderId开始,是否有任何方法可以使用linq找出这两个表引用它?我想在我的代码中添加Debug.Assert,这样每当对列添加另一个外键约束时,我就可以更新该段代码。在数据库端,这些可能会有所帮助:C# 将所有引用列获取到linq中的引用列,c#,linq,foreign-keys,C#,Linq,Foreign Keys,假设您有一个名为Sales的表,该表具有SalesOrderId。然后有两个引用SalesOrderId的表SalesOrderHeader和SalesReport。从Sales表和SalesOrderId开始,是否有任何方法可以使用linq找出这两个表引用它?我想在我的代码中添加Debug.Assert,这样每当对列添加另一个外键约束时,我就可以更新该段代码。在数据库端,这些可能会有所帮助: SELECT * FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
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