2009-07-07 13 views
2

私は大きなアイテムテーブルを持っています。カテゴリ別に、次に年別に、月別に整理する必要があります。Linqネストされたグループ化

アイテムにはCategoryID属性とDatedプロパティがあります。

Dim Items = From Item In DB.Items _ 
     Group By CategoryID = Item.CategoryID _ 
     Into Categories = Group _ 
     Order By CategoryID 

をしかし、私は置く場所:

私はこれまでのところ得

 Group By Year = Year(Item.Dated) 

 Group By Month = Month(Item.Dated) 

を最終的な結果は次のようなものでなければなりません

For Each Category in Categories 
For Each Year in Category.Years 
    For Each Month in Year.Months 
    For Each Item in Month.Items 

    Next 
    Next 
Next 
Next 

おかげでこれを読んだ後

答えて

3

(また、このトピックの詳細情報を持つ):

http://msdn.microsoft.com/en-us/vbasic/bb738024.aspx

私が思い付く:

Dim Items = From Item In DB.Items _ 
    Group Item By CatID = Item.CatID Into Group Select CatID, _ 
    YearGroups = From y In Group _ 
    Group y By YearKey = y.PubDate.Value.Year Into YearGroup = Group _ 
    Select Year = YearKey, _ 
    MonthGroups = From m In YearGroup _ 
     Group m By MonthKey = m.PubDate.Value.Month Into MonthGroup = Group _ 
     Select Month = MonthKey, MonthItems = MonthGroup 
関連する問題