这是我的第一个问题.我从数据库中获取了一个下拉列表的不同值列表,如下所示:
var plocQ = (from m in db.SERVICE_NRS
orderby m.PLOC
select new { PlocID = m.PLOC, value = m.PLOC }).Distinct();
Run Code Online (Sandbox Code Playgroud)
排序似乎没有效果,我必须这样做:
var plocQ = (from m in db.SERVICE_NRS
select new { PlocID = m.PLOC, value = m.PLOC }).Distinct();
plocQ = from s in plocQ
orderby s.PlocID
select s;
Run Code Online (Sandbox Code Playgroud)
我想知道这是否与LINQ或数据库有关?我对LINQ有点新,之前写过太多的SQL.有任何想法吗?
这是因为在对初始结果进行排序后,您正在更改投影中的内容.Distinct不保证订单得到保留.
顺便说一下,即使它确实工作方式,你仍然不会想!你将整理整个项目列表,即使其中一些项目将被抛弃.
如果您只想在一个语句中执行此操作,则可以执行以下操作:
var plocQ = (from m in db.SERVICE_NRS
select new { PlocID = m.PLOC, value = m.PLOC })
.Distinct()
.OrderBy(s => s.PlocID);
Run Code Online (Sandbox Code Playgroud)