ご存知のとおり Sharperlightは、独自のデータモデル階層を使用してデータソースと会話をしています。データモデル作成時には、対象となるデータソースに定義されているJOIN情報は、その他のスキーマ同様データモデルに取り込まれます。
しかしながら後々JOINの追加が必要なケースが発生します。通常そういった場合は、データモデルの更新で対応しますが、稼働中の本システム等では、更新には数々の監査プロセス等をこなさなくてはいけない場合が多々あります。
そのような場合、Sharperlightサービスを再起動するだけで済む簡易な方法が用意されています。
それがここで説明するカスタムJOINです。データモデルに定義されるのではなく、独立したものとしてSharperlightのシステムデータベースに保存されます。では早速見ていきましょう。
先ずはクエリビルダを起動します。
カスタムJOINを定義する対象となる製品とテーブルを選択します。
選択領域にフィールド一覧が階層表示されます。Products\製品テーブルへのJOINが既に存在します。これは対象となるデータモデルにこのJOINが既に定義されていることを示しています。
ここではカスタムJOINの紹介のため、同じJOINをカスタムJOINとして設定します。
製品Idフィールドを選択します。右クリックメニューを表示し、[カスタマイズ] -> [結合]を追加を選択します。
専用のダイアログが開くので、Join To Tableプロパティの右端にあるボタンをクリックします。
結合先のテーブル、ここでは製品テーブルを選択し、[OK]ボタンを押します。
次に、SQLJoinプロパティの右端のボタンをクリックします。
結合するフィールドを指定し、[Add]ボタンをクリックするとJOIN句が生成されます。[OK]を押して確定します。
これでカスタムJOINの作成は終了です。[OK]を押して保存しましょう。
作成されたカスタムJOINがフィールド一覧に追加されています。カスタムJOINは青色で表示されます。しかし、データモデルで定義されている[製品]テーブルへのJOINと同じ説明なので間違いやすいですね。機能は同じだけどね。
カスタムJOINの説明を変更してみましょう。
カスタムJOINを選択し、右クリックメニューから[カスタマイズ] -> [編集]を選択します。
Descriptionプロパティを次のように変更します。
[OK]を押して保存すると、フィールド一覧ではこのように識別しやすくなります。
Sharperlight
More than 1 year has passed since last update.
【クエリビルダ】カスタムJOINを定義してみる
Last updated at Posted at 2022-03-30
Register as a new user and use Qiita more conveniently
- You get articles that match your needs
- You can efficiently read back useful information
- You can use dark theme
List of users who liked
00