2014-02-26 72 views
1

儘管我使用特定的ORM框架,Bold for Delphi,但我更關注框架不可知論問題的理論觀點。持久對象中的瞬態屬性的InitialValue?

所以,問題是關於具有持久對象瞬態屬性初始值標籤。

初始標記指定創建擁有對象的實例時將獲得的值屬性。

但是,隨後從持久性加載此對象時,應該是什麼值的瞬態屬性?

是否應該重新應用初始值標記?從邏輯上講,它應該,否則它將被保留未分配(null)。

我無法在任何文檔中找到關於此特定情況的任何規格。

回答

2

我們不能創建對象直到數據庫記錄 - 因爲我們會失去所有的瞬態屬性。所以,當你加載一個持久對象時,它只能在已經創建的實例中完成。而且沒有其他方法可以在不使用基礎對象構造函數的情況下實例化,該構造函數設置初始值。當然,有些語言可以解決這個問題,但爲什麼?

+0

我使用的框架僅在首次創建對象時設置屬性的初始值。在獲取之前的後續重新創建時,它不會設置初始值,因此瞬態屬性保持未初始化狀態。我想要確認我的意圖,將其視爲錯誤並在框架中修復。也許我不太清楚這個問題。 –

+0

@DanielMaurić如果我們正在談論一個具體的框架,我會在源代碼文檔中尋找它是如何完成的以及它是如何完成的。你有沒有訪問? – Gangnus

+0

@Gangus:這是一個傳統產品,文檔沒有說明這種特殊情況,但我確實有源代碼,我們自己維護它。 目前它只在第一次創建持久對象時設置初始值,是否應該更改它以便初始值在從數據庫還原以及初始創建時設置? –