Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# STE ChangeTracker.OriginalValues始终为空_C#_Entity Framework_Self Tracking Entities_Change Tracking - Fatal编程技术网

C# STE ChangeTracker.OriginalValues始终为空

C# STE ChangeTracker.OriginalValues始终为空,c#,entity-framework,self-tracking-entities,change-tracking,C#,Entity Framework,Self Tracking Entities,Change Tracking,我很难从EF STE DTO中获取原始值 var _Item = new MyClass(); _Item.StartTracking(); // ChangeTracker.OriginalValues.Count = 0 _Item.Name = "Jerry"; // ChangeTracker.OriginalValues.Count = 0 _Item.Name = "Bob"; // ChangeTracker.OriginalValues.Count =

我很难从EF STE DTO中获取原始值

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
我做错什么了吗

谢谢

整个ChangeTracker是您应用程序的一部分-它是一个由STE T4模板生成的类,因此您可以轻松跟踪OriginalValue应该做什么

如果修改跟踪实体的导航属性,则原始值用于存储原始加载的外键和相关实体。它们不用于公共属性,但您可以根据需要修改模板,并对这些属性使用更改跟踪程序

编辑:

您将无法获得common属性的原始值,因为据我所知,它没有存储在模板中。它在SQL分析器中也可见。如果在具有50个属性的实体中更改单个标量属性,并将更改应用到新上下文中,则将使用所有50个属性创建更新。附加实体上的标准更改跟踪将仅传递该修改的属性


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

如何找到公共属性的原始值?