2012-08-16 55 views
0

我有以下LINQ查詢。選擇()在LINQ

public List<RoleResource> GetAllRoleResources() 
    { 
     return this.GetAll<RoleResource>().ToList(); 
    } 

,我需要選擇像列1,列2和財產BColumns,這是另一個表,並具有相對於主表中只有幾列。我將如何檢索此使用。選擇()......我用了以下內容:

.Select(row => {row.Column1, row.Column2, row.BColumns}).ToList() 

它不工作,也顯示錯誤。什麼是.Select()的正確語法?

+3

您需要實例化一個匿名類型的對象。看到這個問題:http://stackoverflow.com/questions/3645494/how-can-anonymous-types-be-created-using-linq-with-lambda-syntax-基本上,你錯過了'new'。 – 2012-08-16 12:08:05

回答

3

定義一個包含你感興趣的列視圖模型:

public class MyViewModel 
{ 
    public string Column1 { get; set; } 
    public string Column2 { get; set; } 
    public string BColumns { get; set; } 
} 

然後:

.Select(row => new MyViewModel 
{ 
    Column1 = row.Column1, 
    Column2 = row.Column2, 
    BColumns = row.BColumns 
}).ToList() 
0

」 關鍵字應添加實例。以下是正確的語法和代碼爲LINQ中的.Select()正常工作。

.Select(row => new{ 
     row.Column1, 
     row.Column2, 
     row.BColumns}) 
.ToList() 

它會正常工作。

+0

嗨..我沒有申請..但我申請時出現錯誤。代碼如下:公開名單 GetAllRoleResources() { 返回this.GetAll ()選擇(行=>新 { row.RoleID, row.ResourceID, row.Actions 。 })ToList(); }錯誤突出顯示aT .ToList(); ...它表示轉換問題...不能隱式地將System.Collections.Generic.List轉換爲 – 2012-08-16 13:35:39

+0

我應該必須進行任何轉換嗎?我已經在問題中編輯了我的代碼...請檢查 – 2012-08-16 13:42:35