我从一个数据库(简化)中得出以下“强度”EF等级 强度” 。
class Product
{
public string ProductId;
public string ProductName;
public string CategoryId;
public string CategoryName;
}
ProductionId
是表格的“强”基本键 强”。
对于 DB 设计师做出的错误设计决定( 我无法修改它), 本表中有 < code> CategoryId code > 和 < code>CategoryName code> 。
我需要一个 < 强度 > 拖放列表 强度 >, 配有 < code > CategoryId code >, 配有 < 强度 > Value 强度 > 和 < code> CategoryName code >, 配有 < 强度 > Text 强度 > 。 因此,我应用了以下代码 :
product.Select(m => new {m.CategoryId, m.CategoryName}).Distinct();
从逻辑上讲,它应该创建一个具有以下属性的匿名对象: CategoryId
和 CategoryName
。 Distinct ()
保证没有重复的对(CategoryId
, CategoryName
)。
但实际上它不起作用。 就我所理解的Distinct ()
() 只是当收藏中只有一个字段时才起作用, 否则它就忽略了它们... 是否正确? 是否有任何变通方法? 谢谢!
<强> UPDATE 强>
抱歉 product
是:
List<Product> product = new List<Product>();
我找到了另一种方法来获得与 Distinct()
相同的结果:
product.GroupBy(d => new {d.CategoryId, d.CategoryName})
.Select(m => new {m.Key.CategoryId, m.Key.CategoryName})