2012-04-12 11 views
2

に基づいてクエリをグループ化。エンティティフレームワークDbContextをThreadsPostsと仮定すると、それを書く方法は?最新Post.Postedに基づいソートLINQは私がこれらの簡単なクラスに問題があるグループ

from t in Threads 
group t.Posts by t into tg 
select tg.Key; 

しかし、どのようにソートするスレッド:グループ化が簡単なのですか?

編集 - ジョンの回答に基づいて解決策:あなたが使用することができ

from t in Threads 
from p in t.Posts 
group p by t into tg 
orderby tg.Max(p => p.Posted) descending 
select tg.Key 

答えて

4

from t in Threads 
group t.Posts by t into tg 
orderby tg.Max(post => post.Posted) // Order by the latest post per thread 
select tg.Key; 

あなたはスレッドが最初の大部分は最近に掲載のスレッドで注文したい場合は、明らかにdescendingを使用。

+0

はどうもありがとうございました!私は、 "p from t.Posts"を追加し、それをグループ化して注文することによって、それを動作させました。 – ciscoheat

0

また、試みることができる:

var orderedThread1 = from t in threads 
        from p in t.Posts 
        orderby p.Posted ascending 
        select t; 

var orderedThread2 = from t in threads 
        group t.Posts by t 
        into tp 
        orderby tp.Max(posts => posts.Max(p => p.Posted)) 
        select tp.Key; 
関連する問題