データの取得
今度は保存したデータを取得してみます。
Dim _ObjectService As New ObjectService Dim _bill As Bill '取得処理 _bill = _ObjectService.LoadObject(GetType(Bill), New ObjectQuery)
データ取得時に親子関係を意識する必要はありません。初期設定では、親オブジェクトをロードすると、自動的に子オブジェクトもロードされます。
取得結果をウォッチ式で確認すると、「BillItemCollection」が2つの子オブジェクトを持っており、子オブジェクトは明細の情報を持っていることを確認できます。
ロードオプションの利用
子オブジェクトを持つ親オブジェクトをロードする時に、子オブジェクトも同時にロードするか否かを設定することが可能です。以下に、手順を説明します。
1.プロパティに対する設定
子オブジェクトを内包しているプロパティ(本記事ではBillクラスの「BillItemCollection」)にロードオプションを設定します。Billクラスの「BillItemCollection」のプロパティをVisualStudio上で確認すると、「マッピング」という項目があります。これを選択すると「InnerObject属性エディタ」画面が表示されます。

画面内の項目「ロードオプション」で、ステータス(Default/HighSpeed/Complete)を選択します(初期値は「Default」)。
2.ロード時の設定
データのロード時に利用する「SaveObject」の引数に、ステータス(Default/HighSpeed/Complete)を指定します(デフォルトは「Complete」)。以下のサンプルでは、「HighSpeed」を指定しています。
Dim _ObjectService As New ObjectService Dim _bill As Bill '取得処理の引数にステータスを設定 _bill = _ObjectService.LoadObject(GetType(Bill),New ObjectQuery, , HighSpeed)
3.ツールが自動判定
ツール内では、上記1と2で設定した2つのステータスを比較し、子オブジェクトをロードするか否かを判断しています。
| プロパティに対する設定 | ロード時の設定 |
| Default | Default/HighSpeed/Completeのいずれを指定しても、 子オブジェクトがロードされます。 |
| HighSpeed | HighSpeed/Completeを指定した場合に限り、 子オブジェクトをロードされます (Defaultと指定するとロードされません)。 |
| Complete | Completeを指定した場合に限り、 子オブジェクトがロードされます (Default/HighSpeedと指定するとロードされません)。 |
子オブジェクトをロードするか否かを容易に設定できますので、パフォーマンス重視の場合に有効な機能となります。
最後に
開発現場で親子関係を持つオブジェクトを取り扱うケースは多いと思いますが、その都度SQLで解決していくのは、エンジニアの負担が大きい作業ではないでしょうか。ObjectServiceを利用すれば、画面上でプロパティを操作するだけで設定が完了するので、非常に簡単に親子関係のオブジェクトを取り扱うことができます。本項を通じてツールの利便性を知っていただければと思います。


