MVC3 / LINQ / EF4.1从结果集中选择不同的col值?

时间:2011-09-26 00:43:15

标签: asp.net-mvc-3 entity-framework-4 linq-to-entities

如何从结果集中选择列值列表(作为不同的列表)并放入列表中?

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 个答案:

答案 0 :(得分:1)

由于您只需要不同的名称列表,因此可以投影到name属性,只需使用Distinct()

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

这需要您将name属性设为公开,同时我会重新考虑您的班级名称TCustomerName(或其他任何有足够表现力的内容,以便了解其含义) )?

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