我正在使用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。 ItemsDataServiceQuery<Item>,其Carrier属性是字符串。

最佳答案

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

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

关于c# - 使用Linq to Entities获取唯一值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10338266/

10-13 03:44