0

我無法從我的EF STE DTO獲取OriginalValues。STE ChangeTracker.OriginalValues始終爲空

var _Item = new MyClass(); 
_Item.StartTracking(); // ChangeTracker.OriginalValues.Count = 0 
_Item.Name = "Jerry";  // ChangeTracker.OriginalValues.Count = 0 
_Item.Name = "Bob";  // ChangeTracker.OriginalValues.Count = 0 
_Item.AcceptChanges(); // ChangeTracker.OriginalValues.Count = 0 
_Item.Name = "Sam";  // ChangeTracker.OriginalValues.Count = 0 

我做錯了什麼?

感謝

回答

0

ChangeTracker是應用程序的一部分 - 它是由STE T4模板生成,因此您可以輕鬆地跟蹤我應該做OriginalValues一類。

OriginalValues用於存儲原始加載的外鍵和相關實體,如果您修改被跟蹤實體的導航屬性。它們不用於公共屬性,但可以根據需要修改模板,也可以使用這些屬性的更改跟蹤器。

編輯:

,因爲它沒有存儲你不會得到共同財產的原值(據我所知模板)。它在SQL事件探查器中也是可見的。如果更改實體中具有50個屬性的單個標量屬性,並將更改應用到新的上下文,它將創建包含所有50個屬性的更新(附加實體上的標準更改跟蹤只會傳遞該修改後的屬性)。

如果您想知道公共屬性的原始值,您必須修改模板以支持此功能。

+1

您如何找到共同財產的原始價值? –