LINQ avec sous-Requête/Groupe/Rejoindre

Débutant à LINQ, et essayer d'écrire la requête suivante...

select 
  f.Section_ID, 
  f.Page_ID, 
  f.SortOrder, 
  f.Type
from 
(
  select 
    Section_ID, 
    min(SortOrder) as minSortOrder
  from 
    ContentPages 
  group by 
    Section_ID
) as x 
inner join 
  ContentPages as f on 
    f.Section_ID = x.Section_ID and 
    f.SortOrder = x.minSortOrder;

Notes:

  • 'Section' a 'de nombreuses ContentPages'
  • Articles sont commandés par un "SortOrder" champ
  • ContentPages sont également commandés par un "SortOrder" champ

Table: Section
Section_ID....Nom.......SortOrder
....1.........Un..........1......
....2.........Deux..........3......
....3.........Trois........2......

Table: ContentPage
Page_ID.......Section_ID.......Titre..............SortOrder
....11.............1.......... Page.............1......
....12.............1...........Page Deux.............3......
....13.............2...........Page Trois...........2......
....16.............2.......... Page Quatre............4......
....17.............2...........Page Huit...........5......
....18.............1...........Page Dix.............6......

La requête ci-dessus pourrait être écrit d'une autre façon, donc voici ce que je suis en train de faire:

  • J'ai besoin de retourner une liste de la première ContentPage à l'intérieur de chaque Section (en cas de tri par ContentPage.L'ordre de tri)
  • Trier les résultats par Section.SortOrder
  • Montrer La Section.Nom (joindre sur Section_ID?) dans le résultat ainsi

2 derniers points ne sont pas couverts par la requête sql ci-dessus et sont plus d'un "gentil"...

Résultat Souhaité
Page_ID.......Section_ID...Nom De Section.....Titre..............SortOrder
....11.............1.........Un......... Page.............1......
....13.............2.........Deux..........Page Trois...........2......

Toute aide est appréciée. Merci!

OriginalL'auteur seekay | 2009-01-13