如何使用Entity Framework执行此SQL查询?
SELECT DISTINCT NAME FROM TestAddresses
Run Code Online (Sandbox Code Playgroud) 我有从数据库派生的以下EF类(简化)
class Product
{
public string ProductId;
public string ProductName;
public string CategoryId;
public string CategoryName;
}
Run Code Online (Sandbox Code Playgroud)
ProductId是表的主键.
对于DB设计者做出的糟糕的设计决策(我无法修改它),我有CategoryId和CategoryName在这个表中.
我需要一个DropDownList的使用(不同)CategoryId的价值,并CategoryName为文本.因此我应用了以下代码:
product.Select(m => new {m.CategoryId, m.CategoryName}).Distinct();
Run Code Online (Sandbox Code Playgroud)
从逻辑上讲,它应该使用CategoryId和CategoryName作为属性创建一个匿名对象.在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)