【发布时间】:2012-05-02 18:30:37
【问题描述】:
我有如下课程,
public class SiteActionMap
{
public int Id { get; set; }
public string ImageName { get; set; }
public int ParentId { get; set; }
public string Name { get; set; }
public virtual ICollection<SiteActionMap> Childrens { get; set; }
public virtual SiteActionMap Parent { get; set; }
public bool Active { get; set; }
}
我想得到一个按儿童数量排序的列表。
我正在尝试这样的事情,但我没有工作。
List<SiteActionMap> list = dbContext.SiteActionMap
.Include(m => m.Childrens)
.Include(m => m.Parent)
.OrderBy(i => i.Childrens.Count)
ToList();
我如何根据儿童数量对我的列表进行排序?
【问题讨论】:
-
OrderByDescending 不起作用,
-
您确定第二个示例中分号的位置吗?这不应该编译...
-
是的,但我怎么能?问题是......
-
我不禁有点语法巨魔,但Children已经是复数形式了。下面的两个答案都是正确的。即使 ICollection 有一个 Count 属性,它也可能不会映射到 DB 上下文,但 Count() 方法会。
-
我目前无法检查,但您是这里延迟加载的受害者吗?可能是第一个 .Include() 之前的 .ToList()?
标签: c# .net linq entity-framework entity-framework-4