2012-06-27 58 views
0

我的數據庫如下界定:填充的ObservableCollection的一個ObservableCollection,由兩個數據庫列

ID Date Number NumberIWishToRecord 

我希望做的是使用LINQ到SQL查詢來填充ObservableCollection<ObservableCollection<CustomClass>>

我想要的是隻選擇行Number == a given parameter

ID是指一個人,我想要做的是讓所有有關個人的信息,並將其存儲在一個ObservableCollection,所以我將有一個ObservableCollection<CustomClass>,每個CustomClass持股約只有一行信息,每個ObservableCollection<CustomClass>只保存一個人的信息(記錄在不同的日子)。

然後我希望選擇一個ObservableCollection<CustomClass>ObservableCollection,它將保存所有人的信息!

因此,一些樣本數據:

ID Date   Number NumberIWishToRecord 
1 27-06-2012 0.1933 25 
1 28-06-2012 0.1933 27 
1 29-06-2012 0.1933 29 
2 14-06-2012 0.1933 412 
2 15-06-2012 0.1741 321 

所以,當我跑我的方法,我只想返回給定參數的數字,在我的情況下,我會選擇0.1933。

然後我希望ID = 1的兩行都保存在ObservableCollection<CustomClass>中,並且單個行中的ID == 2保存在另一個ObservableCollection<CustomClass>中。然後,這兩個ObservableCollections將在他們自己的ObservableCollection!舉例說明:

ObservableCollection<ObservableCollection<CustomClass>> 
    ObservableCollection<CustomClass> 
     1 27-06-2012 0.1933 25 
     1 28-06-2012 0.1933 27 
     1 29-06-2012 0.1933 29 
    ObservableCollection<CustomClass> 
     2 14-06-2012 0.1933 412 

我該如何在linq上編寫一個查詢語句來執行此操作?

回答

0

我只需編寫一個標準查詢語法Linq表達式來實現這一點,就可以將它適用於您的表格。

 var rowsById = new ObservableCollection<ObservableCollection<row>>(
      from r in _rows 
      where r.number == 1.2 
      group r by r.ID into rowIdGroup 
      select new ObservableCollection<row>(rowIdGroup)); 

如果您需要將數據從該行轉換爲CustomClass:

 var rowsById = new ObservableCollection<ObservableCollection<CustomClass>>(
      from r in _rows 
      where r.number == 1.2 
      group r by r.ID into rowIdGroup 
      select new ObservableCollection<CustomClass>(
       rowIdGroup.Select(r => new CustomClass 
             { 
              ID = r.ID, 
              Number = r.number // add more 
             }))); 

或者如果你喜歡查詢語法在所有的表達:

 var rowsById = new ObservableCollection<ObservableCollection<CustomClass>>(
      from r in _rows 
      where r.number == 1.2 
      group r by r.ID into rowIdGroup 
      select new ObservableCollection<CustomClass>(
       from gr in rowIdGroup select new CustomClass 
             { 
              ID = gr.ID, 
              Number = gr.number 
             })); 
相關問題