0

我有一个简单的父/子表,我想使用实体框架填充一个 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 语句中获取父级和所有子级。我现在要做的是按 DateCreated 字段对子列表进行排序,但我不知道该怎么做。我看过有关使用 ThenBy() 的帖子,但看不到如何在上面的 Linq 中注入。有没有更好的方法来制定 Linq?

-shnar

4

1 回答 1

2

不幸的是,这不受支持。您不能按 Linq-to-entities 订购包含的记录。只能订购父记录。但是您仍然可以执行以下操作:

var parent = GetParent(id);
var orderedChildren = parent.Children.OrderBy(c => c.DateCreated);
于 2012-05-31T17:23:19.483 回答