问题描述
|
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 Profiler的查询似乎没有order by
子句。
有任何想法吗?
我可以让它与ѭ2一起工作,但想知道这种疯狂背后的原因。
解决方法
通过尝试在distinct()之后调用orderBy,distinct可能会弄乱订单。
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()方法将它们重新排列为新的不同的无序记录集。