2017-03-06 50 views
1

我想跟踪wpf.But中实体框架工作的变化,但我无法找到Defintion ChangeTracker并在这里显示error.Below是我写的代码取消在WPF MVVM enity数据输入表单按钮: 我的命令委托取消:无法在实体框架中找到ChangeTracker

_commands.AddCommand("Cancel", x => Cancel(), x => CanSave()); 

和我CancelSave方法:

 bool CanSave() 
     { return ctx2.ChangeTracker.HasChanges(); 
     } 

卜ChangeTracker显示errro说实体不包含定义改变tracker.I使用视觉st udio 2010

这是实体的实例: TESTSEntities ctx2 = new TESTSEntities();

我能保存到数据库throuhg的变化:

 public void Save() 
     { 

      ctx2.SaveChanges(); 

      } 

从exisisting数据库表是在创建系统生成的实体类:

public partial class TESTSEntities :   global::System.Data.Objects.ObjectContext 
     { 
     /// <summary> 
+0

是你确定ctx2是DbContext实例,而不是其他的? –

+0

是的,它是我的上下文实例:class Listviewbindwithtextbox_VM:INotifyPropertyChanged { TESTSEntities ctx2 = new TESTSEntities(); –

+0

什么是TESTSEntities的基类? –

回答

0

OjectContext没有ChangeTracker财产, DbContext有它。

要想从对象上下文的更改列表,使用ObjectStateManager的ObjectContext的实例,即

ctx2.ObjectStateManager.GetObjectStateEntries(EntityState.Added /删除/修改)

https://msdn.microsoft.com/en-us/library/system.data.objects.objectstatemanager.getobjectstateentries(v=vs.110).aspx https://msdn.microsoft.com/en-us/library/system.data.entitystate(v=vs.110).aspx

+0

我无法在我的实体中找到DbContext –

+0

这就是为什么我要求您使用您的ObjectContext,它是由您给出的代码中的ctx2 –