1

这是我的 SQL 查询

SELECT 
sys.sysobjects.name Name,
sys.foreign_keys.*
FROM 
sys.foreign_keys 
inner join sys.sysobjects on
    sys.foreign_keys.parent_object_id = sys.sysobjects.id
WHERE 
referenced_object_id = OBJECT_ID(N'[dbo].[Country]') 

我已经安装了 Linqer 来将 SQL 转换为 linq。但我得到一个错误:

SQL 无法转换为 LINQ:在当前数据上下文中找不到表 [foreign_keys]。

我是 Linq 的初学者。谁能帮我将 SQL 转换为 Linq

4

1 回答 1

1

问题是 Linqer 不会拾取系统视图。如果你想在你的应用程序中读取这些表,首先在它们上创建你自己的视图,就像这里所做的那样,然后在这些视图上编写一个查询。

CREATE VIEW SysObjectsView AS SELECT * FROM sys.sysobjects;
GO
CREATE VIEW SysForeignKeysView AS SELECT * FROM sys.foreign_keys;
GO

SELECT obj.name Name, fk.*
FROM SysForeignKeysView fk
INNER JOIN SysObjectsView obj ON fk.parent_object_id = obj.id
INNER JOIN SysObjectsView objfk ON fk.referenced_object_id = objfk.id
WHERE objfk.name = N'Country' 

Linqer 应该能够接受这些观点。

于 2013-05-23T11:54:53.127 回答