實體數據模型 (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>