2014-01-12 60 views
0

我使用微風1.4.8。刪除父實體觸發器不驗證

比方說,我與相關客戶訂購(真實模型與此不同,僅爲簡化) 在我的情況下,關係被定義爲1到很多,並且FK不可爲空。

情況: 我有一些訂單和本地緩存中的所有客戶。

現在,如果我刪除了已經在一個或多個訂單(也是本地)中使用過的客戶,我沒有從微風中得到任何反饋。設置客戶後:

entity.entityAspect.setDeleted(); 

我會期待驗證錯誤彈出,首先已經在客戶端上。 但這不是,所以我希望我的安全港(數據庫模型)拋出一些例外的情況......但沒了

目前它穿過saveChanges()方法,射在服務器端,所有相關的訂單在BeforeSaveEntity()中被擊中 - 感覺不必要的方法。

最終沒有得到改變(除了已刪除狀態本地),但至少我想有來自客戶端或服務器端(服務器微風)在任微風一些反饋

也許有去什麼問題我的數據庫模型。我重新建立了關係,多次更新我的模型,但沒有成功。

元數據:http://pastebin.com/BjwLgULc

模型訂單(交易):http://pastebin.com/PSGsZGxR

模型需求(vehiclemodel)的beforesave實體代碼http://pastebin.com/SW9Wj4ze

一部分被unecessarly擊:http://pastebin.com/N99ucY6P

不知道我錯過了什麼,任何啓發將高度讚賞

+0

你得到從服務器時的迴應是什麼保存失敗? – Dominictus

+0

我從我的saveChanges()中看到POST並且狀態保持在(等待中) – fops

+0

因此沒有沒有響應 – fops

回答

0

我現在檢查關聯交易的數量在服務器端發出刪除前:

// used for now for checking if a parent key related to transactions can be deleted (masterdata.js) 
function checkTransactions(foreignKey,id) { 
    var query = EntityQuery.from("AllTransactions").where(foreignKey, '==', id).take(0).inlineCount(); 
    return query.using(manager).execute().then(querySucceeded, _queryFailed); 
    function querySucceeded(data) { 
     return data.inlineCount; 
    } 
} 

另一個策略是在模型中使用的已刪除屬性。但隨後將需要在下拉列表中附加邏輯......就不應在高速緩存中得到修改的實體

我創建了一個UserVoice的:https://breezejs.uservoice.com/forums/173093-breeze-feature-suggestions/suggestions/5363277-don-t-change-related-entities-in-cache-if-the-fk-r