2016-11-17 67 views
0

使用排序依据我有一个名为Person两列的表:(PERSONID - 键,PersonName如何的EntityFramework

我试图检索由PersonName下令所有的人。

下面的代码不会为了我的结果:

var persons = from p in MyContext.Persons.OrderBy(x=>x.PersonName) select p; 

var res = persons.Distnct().ToArray(); 

是否有可能在舞台上演出的顺序(我知道,移动OrderBy第二行 - 后评价 - 做的顺序) ?

回答

0

试试这个:

var result = (from p in MyContext.Persons 
        select new 
        { 
         p.PersonName 
        }).Distinct().OrderBy(x => x.PersonName).ToArray(); 

解决方案,而LINQ

var result = MyContext.Persons.Select(a => new { a.name }).Distinct().OrderBy(a => a.name).ToArray(); 
+0

你的'Distinct'会破坏'OrderBy'的顺序。你应该改变他们的顺序。 – Sefe

1

可以包括由在单个查询顺序和不同。它对我很好:

var persons = MyContext.Persons.OrderBy(x => x.Name).Select(x => x.Name).Distinct(); 

如果你想将它转换为数组,然后使用ToArray()方法。