次の方法で共有


方法: LightSwitch でデータ リレーションシップを定義する

LightSwitch のデータ デザイナーでは、データ間のリレーションシップを作成、変更、または削除できます。 リレーションシップを使用すれば、関連データが相互に作用する画面を作成できます。たとえば、顧客と注文の両方を表示する画面を作成できます。

このドキュメントは、次のセクションで構成されています。

  • 同じデータ ソースを使用するテーブルまたはエンティティの間にリレーションシップを追加する

  • 別々のデータ ソースを使用するテーブルまたはエンティティの間にリレーションシップを追加する

  • リレーションシップを変更する

  • 多重度を設定する

  • 削除動作の設定

ビデオへのリンク 関連するビデオ デモは、「How Do I: Define My Data in a LightSwitch Application? (操作方法: LightSwitch アプリケーションでデータを定義する)」で参照できます。

同じデータ ソースを使用するテーブル間またはエンティティ間にリレーションシップを追加する

LightSwitch データ デザイナーを使用して、LightSwitch 内部データベースに格納されている 2 つのテーブル間にリレーションシップを設定できます。 場合によっては、このデータ デザイナーを使用して、同じ外部データ ソースを使用する 2 つのエンティティ間にリレーションシップを追加することもできます。 それ以外の場合は、これらのリレーションシップをサーバー上で作成した後、LightSwitch でデータ接続を更新する必要があります。 データ ソースへの接続を更新する方法の詳細については、「方法: データに接続する」を参照してください。

LightSwitch 内部データベースのテーブル間にリレーションシップを追加するには

  1. ソリューション エクスプローラーで、リレーションシップを設定する一方のテーブルのショートカット メニューを表示し、[開く] を選択します。

    注意

    Visual Studio 2012 更新プログラム 2 にアップグレードしたアプリケーションでは、パースペクティブ バーで [サーバー] タブを選択します。

  2. データ デザイナーのコマンド バーで、[リレーションシップ] ボタンをクリックします。

  3. [新しいリレーションシップの追加] ダイアログ ボックスの [名前] 行で、リレーションシップを適用する 2 つのテーブル (Customers と Orders など) を選択します。

  4. [多重度] 行で、これらのテーブルの関連を指定します。

    「多重度の設定」を参照してください。

  5. [削除時の動作] 行で、リレーションシップが設定された一方のテーブルのレコードをユーザーが削除したとき、もう一方のテーブルに残っている関連レコードのデータをどのように処理するかを指定します(たとえば、ユーザーがある顧客を削除したとき、その顧客からの注文データが存在する場合など)。

    「削除時の動作の設定」を参照してください。

  6. [ナビゲーション プロパティ] 行に各ナビゲーション プロパティの名前を入力し、[OK] をクリックします。

    ナビゲーション プロパティは、関連データを表示する画面の領域間を移動するユーザーに役立ちます。 ナビゲーション プロパティは IntelliSense でオブジェクトとして表示され、これらのオブジェクトを使用してコードで LINQ 式を作成できます。

アタッチされたデータベース内のテーブル間にリレーションシップを追加するには

  1. ソリューション エクスプローラーで、リレーションシップを設定する一方のテーブルのショートカット メニューを表示し、[開く] を選択します。

    注意

    Visual Studio 2012 更新プログラム 2 にアップグレードしたアプリケーションでは、パースペクティブ バーで [サーバー] タブを選択します。

  2. データ デザイナーのコマンド バーで、[リレーションシップ] ボタンをクリックします。

    [新しいリレーションシップの追加] ダイアログ ボックスが開きます。

  3. [名前] 行の [宛先] 列で、リレーションシップを適用するテーブルを選択します。

    テーブルには、リレーションシップのプライマリ側で使用されるプライマリ キーが含まれている必要があります。

  4. [多重度] 行で、これらのテーブルの関連を指定します。

    「多重度の設定」を参照してください。

  5. [新しいリレーションシップの追加] の下部付近にあるデータ グリッドで、リレーションシップの [外部] の側からプロパティを選択します。

    このプロパティは [プライマリ] キー プロパティのデータ型と一致する必要があります。

    注意

    テーブルに複合主キーが含まれている場合は、すべての外部キーのデータ型が一致する必要があります。

    注意

    0 または 1 対多リレーションシップの場合、[外部] キー プロパティは必須フィールドにできません。1 対多リレーションシップの場合、[外部] キー プロパティは必須フィールドである必要があります。0 または 1 対 1 リレーションシップの場合は、リレーションシップの両側で主キーの値が使用されます。

  6. [OK] を選択します。

別々のデータ ソースを使用するテーブルまたはエンティティの間にリレーションシップを追加する

LightSwitch データ デザイナーを使用して、別々のデータ ソースを使用するテーブルまたはエンティティの間にリレーションシップを追加できます。 たとえば、LightSwitch 内部データベースのテーブルと、SharePoint リストのエンティティの間にリレーションシップを追加できます。

別々のデータ ソースを使用する 2 つのテーブルまたはエンティティの間にリレーションシップを追加するには

  1. ソリューション エクスプローラーで、リレーションシップを設定する一方のテーブルのショートカット メニューを表示し、[開く] を選択します。

    注意

    Visual Studio 2012 更新プログラム 2 にアップグレードしたアプリケーションでは、パースペクティブ バーで [サーバー] タブを選択します。

  2. データ デザイナーのコマンド バーで、[リレーションシップ] ボタンをクリックします。

    [新しいリレーションシップの追加] ダイアログ ボックスが開きます。

  3. [名前] 行で、リレーションシップを適用するテーブルまたはエンティティ (Customers と Orders など) を選択します。

  4. [多重度] 行で、これらのテーブルまたはエンティティの関連を指定します。

    「多重度の設定」を参照してください。

    注意

    この種類のリレーションシップでは [削除時の動作] を指定できません。

  5. [ナビゲーション プロパティ] 行で、各ナビゲーション プロパティの名前を指定します。

    ナビゲーション プロパティは、関連データを表示する画面の領域間を移動するユーザーに役立ちます。 ナビゲーション プロパティは IntelliSense でオブジェクトとして表示され、これらのオブジェクトを使用してコードで LINQ 式を作成できます。

  6. [新しいリレーションシップの追加] ダイアログ ボックスの下部に表示されるデータ グリッドで、一方のテーブルまたはエンティティのプロパティを選択し、もう一方のテーブルでそれに関連するプロパティを選択します。[OK] をクリックします。

    これらのプロパティは、テーブルまたはエンティティが結合される場所です。 たとえば、Customer エンティティの [Id] プロパティと、Order エンティティの [CustomerID] プロパティを選択します。

リレーションシップを変更する

LightSwitch のデータ デザイナーを使用して、リレーションシップを変更または削除できます。

既存のリレーションシップを変更するには

  1. ソリューション エクスプローラーで、リレーションシップを設定している一方のテーブルのショートカット メニューを表示し、[開く] を選択します。

    注意

    Visual Studio 2012 更新プログラム 2 にアップグレードしたアプリケーションでは、パースペクティブ バーで [サーバー] タブを選択します。

  2. データ デザイナーで、別のエンティティまたはテーブルへのリレーションシップを表すナビゲーション プロパティを選択します。

    たとえば、Customer エンティティに Orders という名前のプロパティがある場合、この "Orders" を Customer-Order リレーションシップのナビゲーション プロパティとして使用します。

  3. [プロパティ] ウィンドウで [リレーションシップ プロパティの編集] リンクを選択します。

    [リレーションシップの変更] ダイアログ ボックスが表示されます。

    リレーションシップを変更するには、このトピックの該当するセクションを参照してください。

    • 同じデータ ソースを使用するエンティティ間でリレーションシップを追加する

    • 別々のデータ ソースを使用するエンティティ間にリレーションシップを追加する

  4. [OK] をクリックして [リレーションシップの編集] ダイアログ ボックスを閉じます。

リレーションシップを削除するには

  1. ソリューション エクスプローラーで、リレーションシップを設定している一方のテーブルのショートカット メニューを表示し、[開く] を選択します。

    注意

    Visual Studio 2012 更新プログラム 2 にアップグレードしたアプリケーションでは、パースペクティブ バーで [サーバー] タブを選択します。

  2. データ デザイナーで、別のエンティティまたはテーブルへのリレーションシップを表す接続線のショートカット メニューを開き、[リレーションシップの削除] を選択します。

多重度の設定

次の表は、LightSwitch で選択できる多重度の設定の組み合わせです。

開始側 の値

終端側の値

説明

1

0 または 1

"開始側" は 0 または 1 つの "終端側" を持つことができますが、"終端側" は 1 つの "開始側" を持つ必要があります。

1

"開始側" は複数の "終端側" インスタンスを持つことができますが、"終端側" は 1 つの "開始側" を持つ必要があります。

0 または 1

1

"開始側" は 1 つの "終端側" を持つ必要がありますが、"終端側" は 0 または 1 つの "開始側" を持つことができます。

0 または 1

1 つの "開始側" を複数の "終端側" に関連付けることができます。ただし、"終端側"は 1 つまたは 0 の"開始側" しか持つことができません。

1

"開始側" は 1 つの "終端側" を持つ必要があります。ただし、"終端側" は複数の "開始側" インスタンスを持つことができます。

0 または 1

"開始側" は 1 つまたは 0 の "終端側" を持つことができます。"終端側" は複数の "開始側" を持つことができます。

注意

LightSwitch のデータ デザイナーでは、1 対 1、0 または 1 対 0 または 1、多対多のリレーションシップを指定することはできません。

削除時の動作の設定

次の表では、リレーションシップにあるレコードを削除しようとしたときに生じる動作をユーザーが管理するために設定できるオプションについて説明します。 いくつかのオプションは、特定の種類のリレーションシップでは利用できない可能があります。

[削除動作]

説明

連鎖削除

「Table1」が削除された場合、関連するすべての「Table2」インスタンスを削除します。

Restricted

関連する "Table2" インスタンスが存在する場合、"Table1" を削除できません。

たとえば、データベースに関連する注文がある場合に、顧客を削除できないことを指定するには [制限付き] を選択します。

関連付けの解除

「Table1」が削除された場合、関連する「Table2」インスタンスでの「Table1」への参照を null に設定します。

参照

その他の技術情報

データ: アプリケーションの背景情報