如何将sql转换为linq

时间:2013-05-22 06:37:24

标签: asp.net-mvc-3 linq linq-to-sql asp.net-mvc-4 sql-to-linq-conversion

这是我的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

1 个答案:

答案 0 :(得分:1)

问题是Linqer无法获取系统视图。如果要在应用程序中阅读这些表,首先要创建自己的视图,就像here所做的那样,并在这些视图上写一个查询。

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应该能够获得这些观点。