PropertyRef 要素 (CSDL)
概念スキーマ定義言語 (CSDL) の PropertyRef 要素は、エンティティ型のプロパティを参照して、そのプロパティが次の役割のいずれかを果たすことを示します。
エンティティのキー (ID を指定するエンティティ型のプロパティまたは一連のプロパティ) の一部。PropertyRef 要素を 1 つ以上使用して、エンティティ キーを定義することができます。詳細については、「Key 要素」を参照してください。
参照制約の依存 End または プリンシパル End。詳細については、「ReferentialConstraint 要素」を参照してください。
PropertyRef 要素に子要素として含めることができるのは、annotation 要素 (0 個以上) のみです。
注意
annotation 要素は、.NET Framework Version 4 以降を対象としたアプリケーションの概念モデルでのみ使用できます。そのようなモデルの XML 名前空間は、https://schemas.microsoft.com/ado/2008/09/edm です。
適用可能な属性
PropertyRef 要素に適用できる属性を次の表に示します。
属性名 |
必須 |
値 |
---|---|---|
Name |
はい |
参照されているプロパティの名前。 |
注意
PropertyRef 要素には、任意の数の annotation 属性 (カスタム XML 属性) を適用できます。ただし、カスタム属性は CSDL 用に予約されたどの XML 名前空間にも属さない場合があります。カスタム属性の完全修飾名は一意である必要があります。
例
下の例は、エンティティ型 (Book) を定義します。エンティティ キーは、エンティティ型の ISBN プロパティを参照して定義されています。
<EntityType Name="Book">
<Key>
<PropertyRef Name="ISBN" />
</Key>
<Property Type="String" Name="ISBN" Nullable="false" />
<Property Type="String" Name="Title" Nullable="false" />
<Property Type="Decimal" Name="Revision" Nullable="false" Precision="29" Scale="29" />
<NavigationProperty Name="Publisher" Relationship="BooksModel.PublishedBy"
FromRole="Book" ToRole="Publisher" />
<NavigationProperty Name="Authors" Relationship="BooksModel.WrittenBy"
FromRole="Book" ToRole="Author" />
</EntityType>
次の例では、2 つの PropertyRef 要素が使用されており、2 つのプロパティ (Id と PublisherId) が参照制約のプリンシパル End と依存 End であることが示されています。
<Association Name="PublishedBy">
<End Type="BooksModel.Book" Role="Book" Multiplicity="*" >
</End>
<End Type="BooksModel.Publisher" Role="Publisher" Multiplicity="1" />
<ReferentialConstraint>
<Principal Role="Publisher">
<PropertyRef Name="Id" />
</Principal>
<Dependent Role="Book">
<PropertyRef Name="PublisherId" />
</Dependent>
</ReferentialConstraint>
</Association>