2017-03-06 38 views
1

wpf.Butでエンティティフレームワークの変更を追跡しようとしていますが、Defintion ChangeTrackerが見つかりません。ここにエラーが表示されます.Belowは私のコードです。 キャンセルのための私のコマンドデリゲート:WPFのMVVMのenityでデータ入力フォームで[キャンセル]ボタンをエンティティフレームワークでChangeTrackerを見つけることができません

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

と私のCancelSave方法:

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

富栄ChangeTrackerショーエンティティがの定義が含まれていないと言ってerrro私はビジュアルstを使用していますioudio 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はそれを持っています。

のObjectContextインスタンスのオブジェクトコンテキストからの変更点のリスト、使用ObjectStateManagerを得るために、すなわち

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です –