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

问题描述:

尽管我遇到此问题的项目解决了不同的域,但我发现了一个隐喻,可能有助于呈现我的问题清楚:使用LINQ-to-NHibernate根据T的子项中的属性值对T的IQueryable进行排序

比方说,你必须建立一个论坛网站,这是该站点的默认视图需要显示论坛主题由线程与最近论坛帖子下令要求。如何使用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; } 
} 
} 

因此,鉴于ForumThreadIQuerable,怎么可能的LINQ可以用于追加将基于ForumThreads排序的OrdbyBy条款在最大(发帖日期)各自的帖子收藏?出于性能方面的原因,我试图找到一种解决方案,它可以使Order By发生在数据库而不是内存中。

任何输入将不胜感激。

你有没有尝试过这样的:

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

刚刚意识到这个问题是两年多岁 - 我只是迟到了一点点:d – CCowan 2013-01-24 18:43:31