2010-09-18 1 views
2

Хотя проект, в котором у меня возникает эта проблема, касается другого домена, я нашел метафору, которая может помочь представить мои вопрос ясно:Использование LINQ-to-NHibernate Сортировка IQueryable из T на основе значения свойства в T's Children

Давайте предположим, что вы должны были разработать веб-сайт, форум, и это было требование, чтобы вид по умолчанию для сайта необходимо отобразить Форум темы заказанные нитями с самыми последними форума сообщений , Как это можно сделать с помощью 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; } 
} 
} 

Итак, дано IQuerable из ForumThread, как Linq можно использовать для добавления в пункт OrdbyBy, который будет сортировать ForumThreads на основе на Макс (PostDate) их соответствующих Сообщений коллекция? И по соображениям производительности я пытаюсь найти решение, которое позволит Order By происходить в базе данных, а не в памяти.

Любой вход был бы оценен.

ответ

0

Вы пробовали что-то вроде:

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

Просто понял, этот вопрос уже более двух лет - я всего лишь чуть-чуть опоздал на вечеринку: D – CCowan