2016-11-16 74 views
0

插入大量相互關聯的嵌套對象時,是否最好先創建並堅持內部實體,以尊重外鍵關係ihps並在層次結構中向上移動,或者是否最好用它們的內部對象創建所有的對象,只保留外部對象?到目前爲止,我已經體驗到,在實施後者時,實體框架似乎明智地計算出關於關係的首先插入內容。但是有人應該知道的警告嗎?第一種方法在我看來是經典的SQL邏輯,而後者似乎更符合實體框架的思想。在實體框架中實現插入語句的方法

回答

0

這完全是關於管理數據損壞的風險並確保數據庫有價值。

當您首先持續記錄內部記錄時,如果外部保存失敗,則可能會導致數據錯誤。根據您的應用需求,孤立的內部記錄可能會出現從主要問題到次要問題的任何地方。

將所有內容保存在一起時,如果單個記錄失敗,則整個保存失敗。

當然,如果內部記錄沒有外部記錄是有意義的(再次,由您的業務需求決定),那麼您可能會阻止應用程序進展。

總之:如果內部記錄依賴外部,一起保存。如果內在是有意義的,就要根據性能/可讀性做出決定。


實例:

House已經沒有意義Homeowner。單獨創建House是可以接受的。

A HSA(房主協會)沒有意義,沒有Homeowner s。這些應該一起創建。

顯然,使用現有數據時,這些示例很有意思,並且變得微不足道。爲了這個問題的目的,我們假設兩者都是在同一時間創建的。