Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 填充ObservableCollection的ObservableCollection,由两个数据库列分隔_C#_Sql_Sql Server_Linq_Linq To Sql - Fatal编程技术网

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
                                        }));