フォーラムのカテゴリと、それぞれのカテゴリの最後の投稿を選択しようとしています。OUTER APPLYを使用してSQLでこれを達成できましたが、これをLINQに正常に変換できませんでした。
SQL で目的の結果を生成します。
SELECT fc.CategoryID, fc.CategoryName, fc.PostCount, ft.Title, ft.LastPost, ft.LastPostId, ft.TopicId
FROM ForumCategory AS fc
OUTER APPLY
(
SELECT TOP (1) *
FROM ForumTopic
WHERE ForumTopic.CategoryID = fc.CategoryID
ORDER BY ForumTopic.lastpost DESC
) ft
私のLINQへの変換の試み:
Dim query = From fc In ctx.ForumCategories _
Join ft In ctx.ForumTopics On fc.CategoryID Equals ft.CategoryID _
Select New With {
fc.CategoryID,
fc.CategoryName,
fc.PostCount,
ft.Title,
ft.LastPostId,
ft.LastPost.OrderByDescending().First()
}
「OrderByDescending」は「日付のメンバーではありませんか?」というエラーが表示されます。