「サーバー側のフィルタ処理」の例で紹介したように、C1DataSource はマスター/詳細連結をサポートしています。大規模なデータセットでは、サーバー側のフィルタ処理が最適なソリューションですが、規模の小さなデータセットでは、クライアント側のフィルタ処理も同様に効率的です。次のシナリオでは、前述の「サーバー側のフィルタ処理」の例で使用したコンボボックスではなく、グリッドを使用してクライアント側のマスター/詳細連結を実行し、カテゴリを選択します。
マスター/詳細連結を実装するには、次の手順に従います。
次に、フォームで、設定したグリッドの下に2つ目のグリッドを追加します。その C1DataSource も C1DataSource に設定しますが、DataMember プロパティは Categories の下にある Products ノードに設定します(次の図を参照)。
マスターグリッドでカテゴリを選択すると、そのカテゴリに関連付けられている製品が詳細グリッドに表示されます。詳細グリッドの情報はやはりすべて編集可能です。これを単一のマシンで実行した場合、マスターグリッドで新しいカテゴリを選択してから関連する製品が詳細グリッドに表示されるまでに、目立った遅延は見られないでしょう。バックグラウンドでは、C1DataSource は Entity Framework の "暗黙の遅延ロード" 機能を利用しており、製品は新しいカテゴリが選択されたときにのみ収集されます。多くのシナリオでは、これでまったく問題ありません。ただし、このセクションの冒頭で、特に規模の小さなデータセットのマスター/詳細関係について言及しました。その場合は、フォームをロードするときにすべてのカテゴリのすべての製品をフェッチした方がよく、これで、単一のマシンでもネットワークにアクセスする場合でも瞬時に表示が行われます。それには、ViewSourceCollection エディタを開き、Categories ビューソースの Include プロパティに「Products」と入力します。