【问题标题】:Getting unique values using Linq to Entities使用 Linq to Entities 获取唯一值
【发布时间】:2012-04-26 17:17:55
【问题描述】:

我正在使用 EF 并且有一个上下文,我可以使用 _inventoryContext.Items 从中获取 Item 对象的集合。现在,这些项目对象有一个名为 Carrier 的字符串值。假设 Items 集合中有 5 个项目,它们具有以下 Carrier 值:

"A", "A", "B", "C", "C"

如何使用 _inventoryContext.Items 取回唯一的运营商值?

"A", "B", "C"

注意

var carriers = _inventoryContext.Items.Select(i => i.Carrier).Distinct();

不起作用;我得到“不支持'Distinct'方法”,没有内部异常。

我使用的是 SQL Server 2008 Express。 Items 是一个 DataServiceQuery<Item>,它的 Carrier 属性是一个字符串。

【问题讨论】:

    标签: c# linq linq-to-entities entity-framework-4.1


    【解决方案1】:

    您的示例应该可以,但您可以尝试另一种方法

    List<string> carriers = _inventoryContext.Items.GroupBy(i => i.Carrier)
                                                   .Select(i => i.Key)
                                                   .ToList();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多