ReferentialConstraint 項目 (CSDL)
概念結構描述定義語言 (CSDL) 中的 ReferentialConstraint 項目可定義功能,其與關聯式資料庫中的參考完整性條件約束類似。 同樣地,資料庫資料表的資料行 (或多個資料行) 可以參考其他資料表的主索引鍵,實體類型的屬性 (或多個屬性) 可以參考其他實體類型的實體索引鍵。 參考的實體類型稱為條件約束的「主要端點」(Principal End)。 參考主要端點的實體類型稱為條件約束的「相依端點」(Dependent End)。
如果在一個實體類型上公開的外部索引鍵參考另一個實體類型上的屬性,ReferentialConstraint 項目可定義兩個實體類型之間的關聯。 因為 ReferentialConstraint 項目提供兩個實體類型之間是如何關聯的資訊,因此不需要對應規格語言 (MSL) 中對應的 AssociationSetMapping 項目。 兩個實體類型之間的關聯沒有公開外部索引鍵的話,則必須要有對應的 AssociationSetMapping 項目,以便將關聯資訊對應至資料來源。
如果實體類別上沒有公開外部索引鍵,ReferentialConstraint 項目只能定義該實體類型與另一個實體類型之間的主索引鍵對主索引鍵條件約束。
ReferentialConstraint 項目可以擁有下列子項目 (依列出的順序):
Documentation (零或一個項目)
Principal (只有一個項目)
Dependent (只有一個項目)
Annotation 項目 (零或多個項目)
適用屬性
ReferentialConstraint 項目可以有任何數量的附註屬性 (自訂 XML 屬性)。 不過,自訂屬性不可屬於任何 XML 命名空間,這是保留給 CSDL 之用。 任兩個自訂屬性的完整名稱不能相同。
範例
下列範例顯示 ReferentialConstraint 項目用來作為 PublishedBy 關聯之定義的一部份。
<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>
另請參閱
概念
Entity Framework 概觀
CSDL 規格
Schema 項目 (CSDL)
Association 項目 (CSDL)
其他資源
CSDL、SSDL 和 MSL 規格
ADO.NET Entity Data Model Tools
referential integrity constraint (Entity Data Model)