C# LINQ OrderBy查询

C# LINQ OrderBy查询,c#,linq,sql-order-by,C#,Linq,Sql Order By,我有以下列出的供应商名单: public List<tblSupplierPerformance> GetSupplierInfo(string memberid, string locationid, string supplieridname) { MyEntities suppliers = new MyEntities(); var r = (from p in suppliers.tblSupplierPerformances w

我有以下列出的供应商名单:

public List<tblSupplierPerformance> GetSupplierInfo(string memberid, string locationid, string supplieridname)
{
    MyEntities suppliers = new MyEntities();

    var r = (from p in suppliers.tblSupplierPerformances
             where p.MemberId == memberid && p.LocationId == locationid
             orderby p.TotalPurchaseQuantity 
             select p)
            .Distinct();

    if (supplieridname != "0")
        r = r.Where(p => p.SupplierIDName == supplieridname);

    return r.ToList();
}
public List GetSupplierInfo(字符串memberid、字符串locationid、字符串supplieridname)
{
MyEntities供应商=新MyEntities();
var r=(来自suppliers.tblSupplierPerformance中的p
其中p.MemberId==MemberId&&p.LocationId==LocationId
订单单位p.TotalPurchaseQuantity
选择p)
.Distinct();
if(供应商ID名称!=“0”)
r=r.Where(p=>p.SupplierIDName==SupplierIDName);
返回r.ToList();
}
但是,运行此命令时,orderby似乎没有进行排序

我想,我想,我需要在“return r.”阶段实现orderby,但我真的不知道该怎么做,否则我可能会在整个商店里大错特错

很高兴收到任何指针。

我怀疑是
Distinct
调用打乱了顺序。。。虽然你没有加入或做类似的事情,但我不确定你为什么需要不同的——每个实体不是天生不同吗

无论如何,您当然可以将排序移到return语句:

return r.OrderBy(p => p.TotalPurchaseQuantity).ToList();

是的,您需要在退货中按订单执行

return r.ToList().OrderBy(o => o.Column1);

对于那些正在寻找类似产品的人,我做了上面的操作,但是使用了OrderByDescending,有趣的是,OrderByDescending命令totalpurchaseQuantity下降。谢谢Jon。这将在.NET本身而不是数据库中执行排序,这可能会降低效率。将它放在调用
ToList
之前在SQL中执行。@Skeet:您指的是LINQ to SQL或LINQ to Entities,对吗?这与LINQ to对象无关,对吗?