我有以下型號:SQL Server多級聯路徑問題 - 我的模型有問題嗎?
我要上刪除自動級聯工作 - 既因爲它的方便,讓我的數據一致,因爲它在實體框架代碼優先很好的支持。問題是這個特定的模型會導致多個級聯路徑。這導致在SQL Server給了我下面的錯誤,當我試圖通過生成代碼EF首先數據庫:
表「事件」可能 事業週期或多個引進國外KEY約束「FK_dbo.Events_dbo.Tournaments_Tournament_Id」級聯路徑。指定ON DELETE NO ACTION或 ON UPDATE NO ACTION,或修改其他FOREIGN KEY約束。
我瞭解,刪除一個Tournament
時,這將是一個種族的Contestant
或Event
刪除與否觸發EventContestant
刪除。 SQL Server不理解這一點。
現在的問題是,我的模型有什麼問題嗎?有沒有其他建模這些數據或一些配置,我可以做些什麼來解決這個問題?我想堅持以下要求:
- 一個
Tournament
的缺失必須級聯到Event
,Contestant
和EventContestant
- 刪除的
Event
必須級聯到EventContestant
- 缺失
Contestant
必須級聯到EventContestant
- 參賽者和事件之間的關係是可選的(因此是0- *多重性)
我可以通過在EventContestant中引入一個單獨的主鍵來解決問題,而不是兩個導航屬性的組合鍵,但是隨後我會打破需求1到3.任何其他建議?