如何在LinQ中显示orderby降序

时间:2016-04-25 07:14:43

标签: c# linq

我希望通过使用网络服务降序void myCollection_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e) { if (e.OldItems != null) { foreach (var removedItem in e.OldItems) { } } } 来显示订单,并且我有一个ObservableCollection.Clear()查询,我想按最近创​​建的时间排序。

这是我的网络服务(GetContent.asmx.cs):

LINQ

我的模特在这里:

LINQ

但这会出错:

  

'char'不包含'CreatedTime'的定义,并且没有扩展方法'CreatedTime'可以找到类型'char'的第一个参数(你是否缺少using指令或汇编引用?)

3 个答案:

答案 0 :(得分:3)

为什么在订购时使用new关键字?你不需要这样做。 这应该可以正常工作。

List<FrontEndContent> lst = new List<FrontEndContent>();
        lst = db.FrontEndContent.OrderByDescending(m => m.NamaPage).ToList();
        lst = db.FrontEndContent.OrderByDescending(m => m.CreatedTime).ToList();
        return lst;

答案 1 :(得分:1)

您可以通过在谓词中不使用new关键字来解决错误。

List<FrontEndContent> lst = new List<FrontEndContent>();
lst = db.FrontEndContent.OrderByDescending(m => m.NamaPage).ToList();
lst = db.FrontEndContent.OrderByDescending(m => m.CreatedTime).ToList();
return lst;

但这仍然不正确,如果您查看上面的代码,您只会FrontEndContentCreatedTime降序排列,因为您会覆盖第三个lst线。

要订购多个字段,您需要使用ThenBy方法。

List<FrontEndContent> lst = new List<FrontEndContent>();
lst = db.FrontEndContent.OrderByDescending(m => m.NamaPage).ThenByDescending(m => m.CreatedTime).ToList();
return lst;

在您的WebService上,您错过了一次注意事项,并且ToList方法也应该在排序操作之后。

FrontEndContent dt = db.FrontEndContent.Where(m => m.NamaPage.ToLower() == NamaPage.ToLower()).OrderByDescending(m => m.CreatedTime).ToList();

答案 2 :(得分:0)

请改用:

FrontEndContent dt = db.FrontEndContent.Where(m => m.NamaPage.ToLower() == NamaPage.ToLower()).OrderByDescending(m => m.CreatedTime).FirstOfDefault();