2013-07-24 27 views
2

假設我們有一個「父」實體「客戶」,子實體「訂單」,而我們在子實體的背景下,如何將我從客戶「分離」的順序,但不刪除訂單?基本上我會做什麼在SQL是:BreezeJS - 如何將其從母公司的導航性能?

update Order set CustomerId = NULL; 

我remove命令功能看起來是這樣的:這取決於你是否有一個標量或非標量導航屬性工作

function remove(order) { 
    // I've tried the following - 
    // order.CustomerId(null); 
    // order.Customer(null); 
    // order.Customer.remove(order); 
} 

回答

1

的幾種方法。在一般情況下,你可以「切斷」來自任何一方的關係。

從'孩子'或從屬方(或父母,如果是1-1關係)。

1)設置的標量導航屬性直接爲空(如果爲空的)

child.parent = null; 

2),設置外鍵爲null

child.parentID = null; 

3)從 '父' 或主要側(如果非標量),如果你正在處理一個非標量導航屬性,即像parent.children,那麼你可以從「孩子」陣列通過「拼接」去掉了孩子。

var ix = parent.children.indexOf(child); 
parent.children.splice(ix, 1); 

在每種情況下,Breeze都知道這種變化,並在關係的另一方執行逆操作。

我希望這是有道理的。

+0

那不是導航屬性仍然​​如同裝標?一個人怎麼能由一個實體中刪除的導航性能,並確保如果應用一些其他組件調用entity.loadNavigationProperty的導航屬性實際上被再次裝入(「名」)(即除去導航屬性,恢復其狀態設置爲「卸載「) – pQuestions123