2013-05-12 103 views
0

背景信息添加記錄到使用Breezejs

所以我用Breezejs和淘汰賽與EF5和後端微風MVC API控制關係的關聯表。我的數據庫中的一張表是一個關聯表,3列 - 一個id和兩個外鍵(我們將其稱爲fkey1和fkey2與table1和table2)。在我的應用程序中,我需要爲此關聯表添加一條記錄。微風知道這張桌子的關係。

形勢

微風讓JS給我一個新的記錄,然後我發現我需要與它關聯的記錄。我是否需要將table1實體的id添加到fkey1 observable中,並將table2實體id添加到fkey2 observable中,並將整個實體添加到它們各自的關係屬性中,並將此新實體對象添加到table1和table2實體關聯屬性中?或者,將id添加到新對象中會自動將這些對象添加到關係屬性中(也許這些對象已訂閱fkey1和fkey2屬性? - 這是我猜測發生在微風背景下,在黑暗中拍攝儘管我不知道)。

用Breeze創建新實體非常簡單,我喜歡它,但是當涉及到創建具有很多關係的新實體時,我有點困惑。

如果您需要更好地描述我的情況,請告訴我,這是一件很難解釋的事情。謝謝!

回答

1

如果在創建和附加實體時適當地設置「外鍵」屬性,Breeze將自動更新所有關聯關係,即關於此和任何相關實體的導航屬性。你永遠不需要手動執行任何修復。

同樣,如果您做了相反操作並將實體分配給標量導航屬性,則Breeze將自動更新外鍵。對於集合導航屬性,如果將值推入集合中,Breeze將自動更新被推入的實體的外鍵。

希望這會有所幫助,但也許我錯過了問題...

+0

這正是我一直在尋找。謝謝Jay – mtleising 2013-05-13 22:44:31

+0

你能創建一個新的實體,然後添加外鍵值嗎? – mtleising 2013-05-13 23:41:24

+1

是的,它會正確更新。您可以設置fk或導航屬性並獲得相同的結果。請注意,直到實體連接到entityManager纔會發生這種情況。如果任何一方已經連接,那麼更新一個nav屬性的行爲會自動將實體帶入entityManager,但是這對於fk來說不能完成。因此,請確保您要更新fk的任何關係的雙方都已連接。 – 2013-05-14 02:05:08