參考條件約束 (Entity Framework)
在 Entity Data Model (EDM) 中,參考條件約束可存在於相關物件之間,例如 SalesOrderHeader 與 SalesOrderDetail 物件之間。這些條件約束是在概念結構定義語言 (CSDL) 檔案中指定。如需詳細資訊,請參閱 ReferentialConstraint 項目 (EntityContainer CSDL)。
附註 |
---|
物件服務不會強制執行可在 EDM 中表示的所有條件約束。例如,物件服務不會強制執行關聯性的基數條件約束,而且當您將相關物件的變更儲存至資料來源時,這可能會導致不一致的結果。請確定資料來源會強制執行所有重要的模型條件約束。 |
當您使用具有約束之關聯性的物件時,請注意以下幾點:
如果沒有定義與父物件的關聯性,相依 (子) 物件就無法存在。
當您建立新的子物件時,父物件必須在物件內容或資料來源中,然後才會呼叫 SaveChanges。否則將會引發 InvalidOperationException。
使用 Add 方法,將子物件加入到父物件的 EntityCollection。子物件的集合可從已經針對此關聯性定義的導覽屬性來存取,或是從父物件之 RelationshipManager 屬性上的 GetRelatedEnd 或 GetRelatedCollection 方法來存取。
刪除父物件也會刪除條件約束關聯性中的所有子物件。這個結果與針對關聯性的關聯啟用 CascadeDelete 屬性相同。
移除此關聯性會刪除子物件。這表示,在 EntityCollection 上呼叫 Remove 會將關聯性和子物件標示為要刪除。
在建立關聯性之後,只能使用以下程序來加以變更:
卸除現有的關聯性。
呼叫 SaveChanges。
將保存的子物件加入到新的父物件的 EntityCollection。