ReferentialConstraint 元素 (EntityContainer CSDL)
在 实体数据模型 (EDM) 中,概念架构定义语言 (CSDL) 中的 ReferentialConstraint 元素指定关联的 Principal Role 和 Dependent Role。引用约束会影响 ObjectContext 中的相关对象的行为。有关更多信息,请参见引用约束(实体框架)。
在下面的关联中,VendorAddress 类型依赖于 Address 类型。一个 Address 对象可以关联到多个 VendorAddress 对象,因为 VendorAddress 只是将 Address 和 Vendor 链接在一起。一个 Vendor 可以有多个 Address。
<Association Name="FK_VendorAddress_Address_AddressID">
<End Role="Address" Type="Adventureworks.Address" Multiplicity="1" />
<End Role="VendorAddress" Type="Adventureworks.VendorAddress" Multiplicity="*" />
<ReferentialConstraint>
<Principal Role="Address">
<PropertyRef Name="AddressID" />
</Principal>
<Dependent Role="VendorAddress">
<PropertyRef Name="AddressID" />
</Dependent>
</ReferentialConstraint>
</Association>
<EntityType Name="VendorAddress">
<Key>
<PropertyRef Name="VendorID" />
<PropertyRef Name="AddressID" />
</Key>
<Property Name="VendorID" Type="Int32" Nullable="false" />
<Property Name="AddressID" Type="Int32" Nullable="false" />
<Property Name="ModifiedDate" Type="DateTime" Nullable="false" />
<NavigationProperty Name="Address"
Relationship="Adventureworks.FK_VendorAddress_Address_AddressID"
FromRole="VendorAddress" ToRole="Address" />
<NavigationProperty Name="AddressType"
Relationship="Adventureworks.FK_VendorAddress_AddressType_AddressTypeID
" FromRole="VendorAddress" ToRole="AddressType" />
<NavigationProperty Name="Vendor"
Relationship="Adventureworks.FK_VendorAddress_Vendor_VendorID"
FromRole="VendorAddress" ToRole="Vendor" />
</EntityType>
<EntityContainer Name="AdventureworksContext">
<EntitySet Name="VendorAddress"
EntityType="Adventureworks.VendorAddress" />
<AssociationSet Name="FK_VendorAddress_Address_AddressID"
Association="Adventureworks.FK_VendorAddress_Address_AddressID">
<End Role="Address" EntitySet="Address" />
<End Role="VendorAddress" EntitySet="VendorAddress" />
</AssociationSet>
</EntityContainer>