C#LINQ - 加载实体然后对它们进行排序

时间:2012-12-07 17:05:31

标签: c# linq

未加载“订单”属性!如何更改此代码以加载属性“Orders”然后得到它的计数,以便我可以使用它排序?

 IOrderedQueryable<Event> orderedQuery = (paging.SortDirection == SortDirection.Ascending)
                                   ? searchQuery.ToList().AsQueryable<Event>().OrderBy(e => e.Orders.Count)
                                   : searchQuery.ToList()
                                                .AsQueryable<Event>()
                                                .OrderByDescending(e => e.Orders.Count);

1 个答案:

答案 0 :(得分:3)

ToList()执行查询,结果列表不包含订单。

如果您不首先致电ToList(),它应该有效:

var orderedQuery = 
    (paging.SortDirection == SortDirection.Ascending)
     ? searchQuery.OrderBy(e => e.Orders.Count)
     : searchQuery.OrderByDescending(e => e.Orders.Count);