參考完整性條件約束 (實體資料模型)
實體資料模型 (EDM) 中的「參考完整性條件約束」(Referential Integrity Constraint) 類似於關聯式資料庫中的參考完整性條件約束。 資料庫資料表中的資料行可以參考另一個資料表的主要索引鍵,同樣地,實體類型的屬性也可以參考另一個實體類型的實體索引鍵。 參考的實體類型稱為條件約束的「主要端點」(Principal End)。 參考主要端點的實體類型稱為條件約束的「相依端點」(Dependent End)。
參考完整性條件約束定義為兩個實體類型之關聯一部分。 參考完整性條件約束的定義指定下列資訊:
條件約束的主要端點。 (實體類型,相依端點會參考其實體索引鍵。)
主要端點的實體索引鍵。
條件約束的相依端點。 (實體類型,具有參考主要端點之實體索引鍵的屬性。)
相依端點的參考屬性。
在 EDM 中,參考完整性條件約束的目的在於確保有效的關聯永遠存在。 如需詳細資訊,請參閱外部索引鍵屬性 (實體資料模型)。
範例
下圖顯示包含兩個關聯 (WrittenBy 和 PublishedBy) 的概念模型。 Book 實體類型具有屬性 PublisherId,當您定義 PublishedBy 關聯的參考完整性條件約束時,此屬性會參考 Publisher 實體類型的實體索引鍵。
ADO.NET Entity Framework 會使用稱為概念結構定義語言 (CSDL) 的特定定義域語言 (DSL) 來定義概念模型。 下列 CSDL 會對上述概念模型中的 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>