var Customer = (from c in DNAContextSQL.Customers
where c.LastName != ""
orderby c.PKID_Customer descending
select new
{
c.PKID_Customer,
c.OrganizationName,
c.FirstName,
c.LastName,
c.Phone,
c.Extension
}).Distinct().ToList();
我知道这是基本的。我发现它为什么不起作用,我找不到任何好的理由。发送到SQL事件探查器的查询似乎没有order by
子句。
有什么想法吗?
我可以让它与.OrderByDescending(...)
合作,但想知道这种疯狂背后的原因。
答案 0 :(得分:5)
区别可能是通过在distinct()
之后调用orderBy来搞乱订单var Customer = (from c in DNAContextSQL.Customers
where c.LastName != ""
select new
{
c.PKID_Customer,
c.OrganizationName,
c.FirstName,
c.LastName,
c.Phone,
c.Extension
}
).Distinct().OrderByDescending(c=>c.PKID_Customer).ToList();
这种情况正在发生,因为您首先选择一组由PKID_Customer排序的行(并且在调用distinct()方法之前对它们进行排序),之后Distinct()方法将它们重新排列为新的不同的无序行记录集。