2012-08-16 82 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