2013-03-01 60 views
0

與以下SQL語句相當的LINQ是什麼?我首先使用實體​​框架5,數據庫。如何用linq查詢sysobjects?

SELECT Name 
FROM SysObjects 
WHERE xtype='U' AND Name LIKE 'D[_]%' 
ORDER BY Name ASC 
+1

它會是什麼? – Legion 2013-03-01 22:49:49

回答

2

你可以用LINQ做到這一點,但只有當你映射到系統對象類,否則這將是不可能的任何其他方式。

例如:

public class SysObject 
{ 
    public int SomeUniqueId { get; set; } 
    public string Name { get; set; } 
} 

映射文件會是這樣(我使用的代碼第一種方法,你沒有說明你是如何使用EF)

public class SysObjectMap : EntityTypeConfiguration<SysObject> 
{ 
    HasKey(p => p.SomeUniqueId); 

    Property(p => p.Name).IsRequired(); 

    ToTable("SysObjects"); // If there is Schema pass it as a 2nd argument 
    Property(p => p.Name).HasColumnName("name"); 
} 

您需要在你的上下文類中註冊這個映射。當然,如果你使用的是數據庫優先方法,上面的代碼可能會讓你感到困惑,因爲Visual Studio生成的代碼會有很大的不同。

更新:如果採用數據庫優先方法,我相信您將能夠看到系統表。當然,你可以隨時打開生成的EDMX和實現類,並自己添加映射。另一種方法是創建一個包裝SysObjects的視圖。然後使用模型設計器添加View。

+0

我的不好,它是數據庫第一。 – Legion 2013-03-01 22:58:49