2

尽管我遇到此问题的项目涉及不同的领域,但我发现了一个可能有助于清楚地提出我的问题的隐喻:

假设您必须开发一个论坛网站,并且要求该网站的默认视图需要显示按具有最新论坛帖子的主题排序的论坛主题。使用 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; }
}
}

那么,给定一个IQuerableForumThread,如何使用 Linq 附加一个 OrdbyBy 子句,该子句将根据各自Posts集合的Max(PostDate)对 ForumThreads 进行排序?出于性能原因,我正在尝试找到一种解决方案,使 Order By 发生在数据库中而不是内存中。

任何投入将不胜感激。

4

1 回答 1

0

您是否尝试过类似的方法:

myQueryable.OrderBy(thread => thread.Posts.OrderByDescending(post => post.PostDate).FirstOrDefault())
于 2013-01-24T18:41:25.110 回答