我希望通过使用网络服务降序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指令或汇编引用?)
答案 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;
但这仍然不正确,如果您查看上面的代码,您只会FrontEndContent
按CreatedTime
降序排列,因为您会覆盖第三个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();