2012-06-27 57 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 
             })); 
相关问题