选择列表的Linq SqlExpression查询未排序

问题描述

我有一个Linq SQL查询,如下所示。但是仓库编号不是按排序顺序排列的。我想将下拉列表显示为depotno order。但是显示为“ 1”,“ 18”,“ 19”,“ 2”。我想将其显示为“ 1”,“ 2”,依此类推

IEnumerable<SelectListItem> depotUserList = (from e in ctx.goUserDepartment
 join c in ctx.goDepot on e.DepotNo equals c.DepotNo
 join user in ctx.goUser
 on e.UserID equals user.UserID
 where e.UserID == UserID &&
 e.IsDeleted == false
 orderby c.DepotNo
 select new SelectListItem
 {
     Value = c.DepotNo.ToString(),Text = c.DepotName,Selected = user.DepotNo == e.DepotNo
 }).distinct().ToList<SelectListItem>();

解决方法

您的DepotNo类型似乎是字符串类型,建议您尝试在ToList方法之后对结果进行排序。

赞:

IEnumerable<SelectListItem> depotUserList = (from e in ctx.goUserDepartment
 join c in ctx.goDepot on e.DepotNo equals c.DepotNo
 join user in ctx.goUser
 on e.UserID equals user.UserID
 where e.UserID == UserID &&
 e.IsDeleted == false
 select new SelectListItem
 {
     Value = c.DepotNo.ToString(),Text = c.DepotName,Selected = user.DepotNo == e.DepotNo
 }).Distinct().ToList<SelectListItem>().OrderBy(x=>  int.Parse(x.Value));