0

私のEF STE DTOからOriginalValuesを取得するのに問題があります。STE ChangeTracker.OriginalValues always Empty

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アプリケーションの一部である - それはあなたが簡単にOriginalValues何をすべきかを追跡できるようにSTEのT4テンプレートによって生成されたクラスです。

OriginalValuesは、トラッキング対象エンティティのナビゲーションプロパティを変更した場合、元のロードされた外部キーおよび関連エンティティを格納するために使用されます。これらは共通プロパティには使用されませんが、必要に応じてテンプレートを変更したり、これらのプロパティの変更トラッカーを使用することもできます。

編集:

それが格納されていないので、(私はテンプレートを理解するよう)あなたは、共通のプロパティの元の値を取得することはありません。 SQLプロファイラでも表示されます。 50個のプロパティを持つエンティティ内の単一スカラープロパティを変更し、新しいコンテキストに変更を適用すると、50個のプロパティすべてで更新が作成されます(添付エンティティの標準変更トラッキングはその変更プロパティのみを渡します)。

共通プロパティの元の値を知りたい場合は、そのような機能をサポートするためにテンプレートを変更する必要があります。

+1

共通のプロパティの元の値はどのように見えますか? –