使用LINQ-to-NHibernate根据T的Children中的属性值对T的IQueryable进行排序

时间:2010-09-18 16:15:07

标签: sql-order-by iqueryable linq-to-nhibernate ilist

虽然我遇到此问题的项目涉及不同的域名,但我发现了一个隐喻可能有助于清楚地表达我的问题:

假设您必须开发论坛网站,并且要求网站的默认视图需要显示最近的主题排序的论坛主题论坛帖子。如何使用Linq-to-Nhibernate实现这一目标?

以下是这些实体的外观示例:

namespace MvcSandbox.Models
{

public class ForumThread : Entity
{
    public virtual string Topic { get; set; }
    public virtual IList<ThreadPost> Posts { get; set; }
}

public class ThreadPost : Entity
{
    private ForumThread _thread;

    public virtual ForumThread Thread
    {
        get { return _thread; }
    }

    public virtual DateTime PostDate { get; set; }

    public virtual string PostText { get; set; }
}
}

因此,如果可以 可以使用,那么Linq如何用于附加OrdbyBy子句,该子句将根据 Max(PostDate)对ForumThreads进行排序各自帖子收藏?出于性能原因,我正在尝试找到一种解决方案,使Order By能够在数据库中而不是在内存中发生。

非常感谢任何输入。

1 个答案:

答案 0 :(得分:0)

你有没有试过像:

myQueryable.OrderBy(thread => thread.Posts.OrderByDescending(post => post.PostDate).FirstOrDefault())