【问题标题】:MVC3/LINQ/EF4.1 selecting distinct col values from a result set?MVC3/LINQ/EF4.1 从结果集中选择不同的 col 值?
【发布时间】:2011-09-26 08:58:51
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案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;}
    }
    

    【讨论】:

      猜你喜欢
      • 2013-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-14
      相关资源
      最近更新 更多