2011-09-26 43 views
0

如何从结果集中选择一列列值(作为不同)并放入列表中?MVC3/LINQ/EF4.1从结果集中选择不同的col值?

class T {int id; string name;} 

- 控制器...

var query = @"exec someStoredProc"; 
IEnumerable<T> bb = 
db2.Database.SqlQuery<T>(query);  

// Something like???: 
List<string> Names = bb.SelectDistinct("name"); // returns distinct list of names from result set 

回答

1

因为你只需要名称的不同列表,可以投射到name属性和只使用Distinct()

List<string> Names = bb.Select(x=> x.name) 
         .Distinct() 
         .ToList(); 

这要求你公开name属性,我也会重新考虑你的班级名称TCustomerName(或者wh其他人还有足够的表现力,所以你知道它是什么意思)?

public class CustomerName 
{ 
    public int id{get;set;} 
    public string name {get;set;} 
} 
+0

非常酷!谢谢! – JaJ