33

私はこのようなテーブルを持っています (テーブル名: Posts):

+----+--------------------------+-------+------------+
| id |         content          | type  |    date    |
+----+--------------------------+-------+------------+
|  0 | Some text                | TypeA | 2013-04-01 |
|  1 | Some older text          | TypeA | 2012-03-01 |
|  2 | Some even older texttext | TypeA | 2011-01-01 |
|  3 | A dog                    | TypeB | 2013-04-01 |
|  4 | And older dog            | TypeB | 2012-03-01 |
|  5 | An even older dog        | TypeB | 2011-01-01 |
+----+--------------------------+-------+------------+

LINQ式を使用して、各タイプの最新のコンテンツを見つけたいので、結果は

Some text | TypeA 
A dog     | TypeB

私はいくつかのことを試しましたが、機能しない式を指摘しても意味がありません。

4

4 に答える 4

71

投稿全体を取得したい場合。これを試すことができます:

var query = Posts.GroupBy(p => p.Type)
                  .Select(g => g.OrderByDescending(p => p.Date)
                                .FirstOrDefault()
                   )
于 2013-04-29T09:13:08.957 に答える
1

メモリから、このような何かがそれを行う必要があります

var data = context.Posts.GroupBy(p => p.Type)
                        .Select(g => new { 
                                          Type = g.Key, 
                                          Date = g.OrderByDescending(p => p.Date)
                                                  .FirstOrDefault()
                                         }
               

これにより、新しい匿名型が得られますが、いつでもクラスにマップできます

于 2013-04-29T07:59:36.230 に答える