Linq订单不工作

use*_*891 7 linq sql-order-by

Linq查询"order by"无效,我已按照您网站和其他网站上的所有建议进行操作.任何援助将不胜感激.

    [WebGet]
    public IQueryable<vw_providercharge_providers> GetChargeProviders(int submitted)
    {
        var results = (from p in this.CurrentDataSource.vw_providercharge_providers
                       where p.submitted == submitted
                       orderby p.fullname
                       select p);
        return results;
    }
Run Code Online (Sandbox Code Playgroud)

感谢您的输入!

是的,这是WCF数据服务的WebGet方法.如果我没有返回IQueryable类型,我会收到400错误,所以我稍微修改了你的建议.不幸的是,它似乎仍然无视任何订单.

[WebGet]
public IQueryable<vw_providercharge_providers> GetChargeProviders(int submitted)
{
    var results = (from p in this.CurrentDataSource.vw_providercharge_providers
                   where p.submitted == submitted
                   orderby p.fullname
                   select p).ToArray();
    results.OrderBy(p => p.patientname);
    return results;
}
Run Code Online (Sandbox Code Playgroud)

Blu*_*eft 18

我注意到你返回IQueryable<T>- 你在枚举它之前调用结果上的任何LINQ方法吗?

并非所有LINQ方法都保留顺序.最常见的是,Distinct() 您进行订购进行调用会破坏订单.

  • 感谢有关Distinct()的评论,这对我来说是个问题.解决方案可在此处找到[link](http://stackoverflow.com/questions/12428985/distinct-and-orderby-issue) (2认同)