相关疑难解决方法(0)

实体框架选择不同的名称

如何使用Entity Framework执行此SQL查询?

SELECT DISTINCT NAME FROM TestAddresses
Run Code Online (Sandbox Code Playgroud)

c# linq entity-framework distinct

123
推荐指数
4
解决办法
17万
查看次数

如何在多个字段中使用LINQ Distinct()

我有从数据库派生的以下EF类(简化)

class Product
{ 
     public string ProductId;
     public string ProductName;
     public string CategoryId;
     public string CategoryName;
}
Run Code Online (Sandbox Code Playgroud)

ProductId是表的主键.

对于DB设计者做出的糟糕的设计决策(我无法修改它),我有CategoryIdCategoryName在这个表中.

我需要一个DropDownList的使用(不同)CategoryId价值,并CategoryName文本.因此我应用了以下代码:

product.Select(m => new {m.CategoryId, m.CategoryName}).Distinct();
Run Code Online (Sandbox Code Playgroud)

从逻辑上讲,它应该使用CategoryIdCategoryName作为属性创建一个匿名对象.在Distinct()保证有没有重复对(CategoryId,CategoryName).

但实际上它不起作用.据我所知,Distinct()当集合中只有一个字段时,它就会忽略它们......这是正确的吗?有没有解决方法?谢谢!

UPDATE

对不起product是:

List<Product> product = new List<Product>();
Run Code Online (Sandbox Code Playgroud)

我找到了另一种获得相同结果的方法Distinct():

product.GroupBy(d => new {d.CategoryId, d.CategoryName}) 
       .Select(m => new {m.Key.CategoryId, m.Key.CategoryName})
Run Code Online (Sandbox Code Playgroud)

c# linq distinct

62
推荐指数
5
解决办法
16万
查看次数

标签 统计

c# ×2

distinct ×2

linq ×2

entity-framework ×1