0

私のデータベースは次のとおりです。

ID   Date   Number   NumberIWishToRecord

私がやりたいことは、Linq-to-SQL クエリを使用してObservableCollection<ObservableCollection<CustomClass>>.

私が欲しいのは、行のみを選択することですNumber == a given parameter

ID私がやりたいのは、人に関するすべての情報を取得して に保存することですObservableCollection。そのためObservableCollection<CustomClass>、それぞれCustomClassが 1 行のみに関する情報をObservableCollection<CustomClass>保持し、それぞれが 1 人のみに関する情報を保持します (に記録されます)。別の日)。

次に、すべての人に関する情報を保持するObservableCollectionを選択します。ObservableCollection<CustomClass>

したがって、いくつかのサンプルデータ:

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 to sql でクエリを作成するにはどうすればよいですか?

4

1 に答える 1

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
                                        }));
于 2012-06-27T10:18:17.467 に答える