Linqを使用してエンティティに順序付けられたレコードを取得しようとしていますDateTime
が、個別のレコードとしても必要です。
私のテーブルデザインは次のようになります。
blogItemNodeId
Umbraco CMSノード(コメントを作成できるブログアイテムノード)はどこにありますか
要件は、ブログアイテムのリストを、コメントの数で並べ替えることができることです。blogItemNodeId
したがって、これらのブログアイテムを表示するには、最新のコメントを区別する必要があります。
私の現在のlinqクエリは次のようになります。
var distinctComments = (from c in ctx.BlogComments
orderby c.date
group c by c.blogItemNodeId
into uniqueRecords
select uniqueRecords.FirstOrDefault());
このクエリの問題は、同じであるすべてのコメントの中で最も新しいレコードを見つける必要がある場所で、最初の(したがってFirstOrDefault()
)レコードが明確に見つかることです。blogItemNodeId
blogItemNodeId
誰かがこれを達成する方法を知っていますか?:-)
よろしくお願いします。
編集
私はこれを行うことでそれを機能させることができました:
var allComments = (from c in ctx.BlogComments
orderby c.date descending
select c).ToList();
var distinctComments = allComments.GroupBy(x => x.blogItemNodeId).Select(y => y.FirstOrDefault());
しかし、私はグループを行う前にすべてのコメントを取得する必要がありますが、それはあまりエレガントでもパフォーマンスでもありません。
どんな助けでも大歓迎です!