C# 填充ObservableCollection的ObservableCollection,由两个数据库列分隔
我的数据库如下:C# 填充ObservableCollection的ObservableCollection,由两个数据库列分隔,c#,sql,sql-server,linq,linq-to-sql,C#,Sql,Sql Server,Linq,Linq To Sql,我的数据库如下: ID Date Number NumberIWishToRecord 我想做的是使用Linq到SQL查询来填充ObservableCollection 我想要的是只选择行数==给定参数 ID指的是一个人,我想做的是获取关于一个人的所有信息并将其存储在ObservableCollection中,因此我将有一个ObservableCollection,每个CustomClass只保存关于一行的信息,每个ObservableCollection只保存关于不同日期记录的一
ID Date Number NumberIWishToRecord
我想做的是使用Linq到SQL查询来填充ObservableCollection
我想要的是只选择行数==给定参数
ID指的是一个人,我想做的是获取关于一个人的所有信息并将其存储在ObservableCollection中,因此我将有一个ObservableCollection,每个CustomClass只保存关于一行的信息,每个ObservableCollection只保存关于不同日期记录的一个人的信息
然后我希望选择ObservableCollection的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中,并且ID==2的单行保存在另一个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 to sql中编写一个查询来实现这一点?我将只编写一个标准查询语法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
}));