实体框架按.Include字段选择父/子订购

时间:2012-05-31 17:19:03

标签: entity-framework-4

我有一个简单的父/子表,我想使用Entity Framework填充一个SQL语句。像这样:

public class Parent
{
    public long ParentId { get; set; }
    public virtual List<Child> Children { get; set; }
}

public class Child
{
    public long ChildId { get; set; }
    public long ParentId { get; set; }
    public DateTime DateCreated { get; set; }
}

public Parent GetParent (long parentId)
{
    IQueryable<Parent> query =
            (from a in db.Parents.Include("Children")
             where a.ParentId == parentId
             select a);
    return query.FirstOrDefault();
}

这似乎可以在一个SQL语句中获取Parent和所有Children。我现在要做的是按DateCreated字段命令子列表,但我无法弄清楚如何做到这一点。我见过关于使用ThenBy()的帖子,但是没有看到如何在上面的Linq中注入。我应该有更好的方法来制定Linq吗?

-shnar

1 个答案:

答案 0 :(得分:2)

不幸的是,这不受支持。您无法通过Linq-to-entities订购包含的记录。只能订购父记录。但你仍然可以做类似的事情:

var parent = GetParent(id);
var orderedChildren = parent.Children.OrderBy(c => c.DateCreated);