エンティティのデータに、別のエンティティのデータとの関連性があることは少なくありません。 たとえば、Customers エンティティと Orders エンティティがある場合、Orders エンティティは、どの顧客からの発注であるかを示す Customers エンティティに対するルックアップ リレーションシップを持つことが考えられます。 ルックアップ フィールドを使用すれば、発注した顧客の Customers エンティティからのデータを表示することができます。 詳細については、「Entity relationships and lookup fields」 (エンティティ リレーションシップとルックアップ フィールド) を参照してください。

リレーションシップの定義

2 つのエンティティ間 (または同じエンティティ間) で作成できるリレーションシップには、いくつかの種類があります。 1 つのエンティティは、複数のエンティティとのリレーションシップを持つことができます。また、1 つのエンティティが、別のエンティティに対して複数のリレーションシップを持つこともできます。 以下に、いくつかの一般的なリレーションシップの種類を示します。

  • 標準 - このタイプのリレーションシップは、2 つのエンティティの間に存在します。

  • 自己 - このタイプのリレーションシップは、同じエンティティ間に存在します。

  • 一対一 - このタイプのリレーションシップでは、エンティティ A の各レコードが、エンティティ B の 1 件のレコードとのみ対応関係を持つことができます (その逆も同様)。 現行リリースの Common Data Service は、カスタム エンティティのこのタイプのリレーションシップをサポートしていません。

  • 一対多 - このタイプのリレーションシップでは、エンティティ A の各レコードが、エンティティ B の複数のレコードと対応関係を持つことができます。一方、エンティティ B の各レコードは、エンティティ A の 1 件のレコードに対してしか対応関係を持つことができません。

  • 多対多 - このタイプのリレーションシップでは、エンティティ A の各レコードが、エンティティ B の複数のレコードと対応関係を持つことができます (その逆も同様)。 現行リリースの Common Data Service は、このタイプのリレーションシップをサポートしていません。

ルックアップ リレーションシップの追加

エンティティにルックアップ リレーションシップを追加するには、[リレーションシップ] タブでリレーションシップを作成し、リレーションシップを作成するエンティティを指定します。

  1. powerapps.com で、[Common Data Service] セクションを展開し、左側のナビゲーション ウィンドウで [エンティティ] をクリックまたはタップします。
  2. エンティティの一覧で、目的のエンティティをクリックまたはタップすると、そのフィールドが表示されます。 この一覧は、その上に表示される検索バーに文字を入力してフィルタリングできます。
  3. 画面の上部に表示される [リレーションシップ] をクリックまたはタップします。 このタブには、エンティティのすべてのリレーションシップが表示されます。 [新しいリレーションシップ] をクリックします。
  4. [リレーションシップの作成] ページで、リレーションシップを作成する関連エンティティを指定します。次に、リレーションシップの名前と表示名を指定します。
  5. [保存] をクリックまたはタップして変更を確定します。 同じ名前のルックアップ フィールドが自動的に作成されます。

アプリでのルックアップ フィールドの使用

ルックアップ フィールドを含むエンティティから自動的にアプリを作成した場合、そのエンティティはドロップダウン コントロールとして表示され、折りたたまれた状態にある参照先エンティティのプライマリ キー フィールドからのデータを含みます。 展開時にドロップダウンで 2 つのフィールドを表示するには、ルックアップ リレーションシップの関連エンティティの [Default Lookup] (既定のルックアップ) フィールド グループに PrimaryId フィールドと任意の 2 番目のフィールドを追加する必要があります。

ルックアップ リレーションシップを持つレコードの削除

エンティティ A がエンティティ B に対するルックアップ リレーションシップを持つ場合、次のことが当てはまります。

  • エンティティ A のレコードは自由に削除することができます。
  • エンティティ A のレコードとの対応関係を持つレコードがエンティティ B に存在する場合、エンティティ B のレコードを削除するためにはまず、エンティティ A の、対応するすべてのレコードを削除する必要があります。

: エンティティ B が標準エンティティで、エンティティ A に対する親リレーションシップを持つ場合、エンティティ A からレコードを削除すると、エンティティ B からも、対応するすべてのレコードが削除されます。

フィールドを削除する方法については、フィールドの管理に関するページを参照してください。

次の手順