c# - 使用 Linq to Entities 获取唯一值

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

我正在使用 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属性是一个字符串。

最佳答案

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

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/

相关文章:

c# - 如何将元组与条目的自定义比较器进行比较,但元组的默认比较器?

c# - 如何在 XAML 中将静态值传递给 IValueConverter

c# - 将 LINQ 查询缩小到一列

c# - LINQ to Dataset 是 LINQ to EF 的子集还是这两者是独立的?

entity-framework - Entity Framework : Querying Child Entities

c# - 我将如何构造 PrintNode() 方法?

c# - System.TypeLoadException : Method 'Create' in type 'MySql.Data.EntityFrameworkCore.Query.Internal.MySQLSqlTranslatingExpressionVisitorFactory'

linq - 如果找到多个实例则返回 null

vb.net - 将嵌套 for 循环转换为 LINQ

c# - Linq to Entities 查询无法执行