我有子表,有外鍵引用兩個其他表,Parent1 & Parent2(這些不是這些表的真實名稱)。 Parent1 & Parent2與祖父母都有一對多的關係。 Child表是建立Parent1和Parent2之間多對多關係的連接表,但作爲自己的「映射實體」暴露給Breeze。級聯刪除不與微風
我對這兩個外鍵都有級聯刪除設置,當我從SQL Server Management Studio中刪除Parent1或Parent2表中的行時,級聯工作正常,並且Child表中的相應行被刪除。
然而,當我使用微風
function removeParent1(grandParent, parent1) {
var index = grandParent.parent1s.indexOf(parent1);
grandParent.parent1s.splice(index, 1);
parent1.entityAspect.setDeleted();
}
我收到以下異常在我的應用程序執行下面的代碼。
類型的異常「System.Exception的」發生在 Breeze.ContextProvider.dll但在用戶代碼中沒有處理
附加信息:UPDATE語句衝突與 FOREIGN KEY約束「FK_dbo。 Child_dbo.Parent1_Parent1Id」。在數據庫「DB」,表「dbo.Parent1」,列'Id'中發生了 衝突。
該聲明已終止。
我無法弄清楚發生了什麼事。 Breeze是否嘗試用NULL外鍵更新子行?
這是我最終選擇的路線(刪除孩子然後是父母),但是我希望有一種方法可以將這種邏輯壓入數據庫,這樣數據模型的複雜性就會盡可能地被封裝起來。我想這可以用INSTEAD OF DELETE或AFTER DELETE來完成,但在客戶端執行它會更有意義,因爲我想彈出一個「DELETING THIS WILL DELSO THESE ...」警告,當有一個依賴關係的實體無論如何都會被刪除。 – user1569339 2014-11-06 19:25:31
Breeze代碼的更新是否同時處理級聯?我正在爲Breeze實現一個基於django的服務器接口,並且遇到了完全相同的問題。 – 2016-06-02 19:16:41