參考完整性條件約束
實體資料模型 (EDM) 的「參考完整性限制式」關聯式資料庫類似於關聯式資料庫的參考完整性限制式。 同樣地,資料庫資料表的資料行 (或多個資料行) 可以參考其他資料表的主索引鍵,實體類型的屬性 (或多個屬性) 可以參考其他實體類型的實體索引鍵。 參考的實體類型稱為限制式的「主要端點」。 參考主要端點的實體類型稱為限制式的「相依端點」。
參考完整性限制式定義為兩個實體類型關聯的一部分。 參考完整性條件約束的定義指定下列資訊:
條件約束的主要端點。 (實體類型,相依端點會參考其實體索引鍵。)
主要端點的實體索引鍵。
條件約束的相依端點。 (實體類型,具有參考主要端點之實體索引鍵的屬性。)
相依端點的參考屬性。
在 EDM 中,參考完整性條件約束的目的在於確保有效的關聯永遠存在。 如需詳細資訊,請參閱外部索引鍵屬性。
範例
下圖顯示包含兩個關聯 (WrittenBy
和 PublishedBy
) 的概念模型。 Book
實體類型具有屬性 PublisherId
,當您定義 Publisher
關聯的參考完整性條件約束時,此屬性會參考 PublishedBy
實體類型的實體索引鍵。
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>