LINQ中的OrderBy DESC

时间:2016-05-27 19:13:02

标签: c# asp.net-mvc linq

我想按字母顺序排序从LINQ查询获得的客户列表:

  var routeList = db.Clients
            .Where(p => p.ClientName
                .StartsWith(term))
                .Select(p => new { id = p.ClientID, clientName = p.ClientName })
                .OrderBy(p=>p.clientName).ToList();

但是当我调用它时,它不按字母顺序排序。你知道为什么吗? TNX。

更新:所以,请原谅我没有详细说明.. 我正在使用自动完成功能。所以这是代码。 控制器:

 public JsonResult Search(string term)
    {
        //term = Request.QueryString["term"];
        var routeList = db.Clients
            .Where(p => p.ClientName
                .StartsWith(term))
                .Select(p => new { id = p.ClientID, clientName = p.ClientName })
                .OrderBy(p=>p.clientName).ToList();

        return Json(routeList, JsonRequestBehavior.AllowGet);
    }

我的观点是:

@model IEnumerable<DataAccess.AdeccoView>
@{
ViewBag.Title = "SAR";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<p>
<input type="text" id="clientList" class="form-control"/>
</p>
@Styles.Render("~/Content/themes/base/css")

<script type="text/javascript">
$(document).ready(function () {
    $("#clientList").autocomplete({
        source: function (request, response) {
            $.ajax({
                url: "/AdeccoViews/Search",
                type: "POST",
                dataType: "json",
                data: { term: request.term },
                success: function(data) {
                    response($.map(data, function(item) {
                        return { label: item.clientName};
                    }));
                    }
            });
        },
        messages: {
            noResults: "", results: ""
        }
    });
})

1 个答案:

答案 0 :(得分:2)

当您在查询中调用Select()时,您将更改Queryable将返回的内容。尝试在OrderBy之前使用Select(),并作为一个好的实践,尝试将Select()作为查询的最后一种方法。样本:

var routeList = db.Clients
                .Where(p => p.ClientName.StartsWith(term))
                .OrderBy(p => p.ClientName)
                .Select(p => new { id = p.ClientID, clientName = p.ClientName })
                .ToList();