2011-09-20 58 views
1

我知道有一個事件ObjectMaterialized在對象被物化之後在ObjectContext上被調用。EntityFramework知道何時被物化

有沒有辦法知道對象是什麼時候目前正在物化?

可以通過從數據庫刷新來重新實現對象。所以我不能簡單地在班上有一個標誌,表明我是否已經物化,因爲它可能會再次發生。

基本上,當某些屬性被設置時,我想知道它們是否被設置爲數據庫中的新值(即正在物化),或者應用程序是否從別處調用它們。

回答

1

如果我閱讀文檔正確則ObjectMaterialized事件觸發僅一次時創建實體對象,然後將其從與查詢或加載操作數據庫加載。

您可以跟蹤與ObjectStateManager對象的變化,但我不知道,如果它可以幫助你找出變化的來源。

1

正如@BigL所回答的,當實體刷新時,這個事件不會再次被觸發。實現意味着創建一個實例,並且只會發生一次。刷新只更新現有實例中的值並設置實體狀態。

您一直知道屬性是通過刷新來設置的,因爲您必須在指定的實體實例上觸發該操作,以便您可以控制在設置屬性時需要打開或關閉所用邏輯的標誌。

相關問題