只是想检查是否有多种方法可以区分多个列.提前致谢!!!
顺便说一句,我在这里找到了一个很棒的LINQ扩展,但需要一些指导才能将它用于多列
好吧,你可以先做投影:
var qry = db.Customers.Select(cust => new {cust.ID, cust.Name, cust.Region}) .Distinct();
或者在查询语法中:
var qry = (from cust in db.Customers select new {cust.ID, cust.Name, cust.Region}).Distinct();
那呢?
您可以使用Groupby,然后选择每个组的Top Most记录,而不是Distinct
LINQ如何在没有匿名类型的情况下由多个字段区分
在objEntity中从o返回
group o by new { o.Field1, o.Field2, o.Field3, o.Field4, o.Field5 } into grp select grp.FirstOrDefault();
这将为您提供EntityObject而不是AnonymousType
通过"多列不同",你真正的意思是一个群体.
当您要求distinct时,这意味着您将获得所有不同的行,或者使用表中的所有列获取组.
如果只想为列的子集获取不同的分组,请在子句中使用group by,指定要分组的列.然后,选择组,因为您只需要每组的一组键.