次の方法で共有


エンティティ型 (EDM)

エンティティ データ モデル (EDM) では、EntityType は、アプリケーション ドメインにおけるデータ型のデザイン テンプレートです。エンティティ宣言は、概略的に特定のデータ型を表します。スキーマは、テーブル構造またはコードによって妨げられることなく、データ型の詳細を指定するために使用されます。デザインが完成した後、プログラム可能なデータ型がデザインに基づいてビルドされます。

EDM EntityType は、最上位レベルの概念 (たとえば、ビジネス アプリケーションにおける顧客、注文、仕入先) をモデル化するために使用します。それぞれのエンティティは、概念スキーマ定義言語 (CSDL) で EntityType として定義されます。概略として定義された EntityType は、アプリケーション開発にとっての操作単位となります。それぞれの EntityType は、概念的に独立していて、一意な ID を持ちます。

エンティティのプロパティと ID

スキーマの EntityType には、名前とプロパティに加え、アプリケーション コードによってインスタンス化されるときにデータ型を識別するキー プロパティがあります。

EntityType に関する情報のほとんどは、プロパティに含まれています。プロパティは EDM の SimpleType または ComplexType のデータです。プロパティは、1 つの値を受け取ります。ただし、NavigationProperty 型をアソシエーションと共に使用して、データ アイテムのコレクションのように動作するプロパティを実装できます。ナビゲーション プロパティの詳細については、EDM の「ナビゲーション プロパティ (EDM)」を参照してください。アソシエーションの詳細については、「Entity Data Model のリレーションシップ」を参照してください。

プロパティ

プロパティは、指定したデータ型の値の一意な名前を定義することで EntityType に情報を追加します。プロパティの指定は名前と型で構成され、GetterAccess 属性と SetterAccess 属性を使用してアクセス制約を指定できます。プロパティの型は、EDM SimpleType として指定されているものの中から選択されます。

キーに参加しているプロパティ以外のすべてのプロパティでは、Null が許容されます。次の例では、EntityType を宣言しています。

<EntityType Name="Person">
  <Key>
      <PropertyRef Name="EmailID"/>
  </Key>
  <Property Name="EmailID" Type="String" Nullable="false" />
  <Property Name="Name" Type="String" />
  <Property Name="Address" Type="String" />
  <Property Name="PhoneNumber" Type=" String"/>
</EntityType>

この例では、EmailID プロパティは、このエンティティにおいてキー プロパティとして指定されています。このキーに Null を設定することはできません。つまり、Person インスタンスには、電子メール識別子を設定する必要があります。キーは、これを使用するアプリケーション内の型のインスタンスを識別するために使用されます。

エンティティ キー

EntityType では、型に対して定義された 1 つまたは複数のプロパティから構成されるキーを定義する必要があります。SimpleType プロパティの任意のセットは、キーとして使用できます。アプリケーション コードでは、キーで使用されるすべてのプロパティで Null は許容されません。

[!メモ]

String 型をキーとして使用する方法は、パフォーマンスの点からも予測可能性の点からもお勧めできません。str1 == str2 の意味は非常にあいまいであるからです。

次の例では、2 つの SimpleType プロパティを使用して、キー属性を複合キーに割り当てています。

<EntityType Name="Person">
   <Key>
      <PropertyRef Name="ContactId" />
      <PropertyRef Name="Name" />
   </Key>
      <Property Name="ContactId" Type="String" Nullable="false" />
      <Property Name="Name" Type="String" Nullable="false" />
      <Property Name="PhoneNumber" Type="String" />
</EntityType>

参照

概念

単純型 (EDM)
複合型 (EDM)
Entity Data Model の型