2010-12-29 7 views
0

DBからEF4を使用してオブジェクトグラフを取得します。 データが取得され、データがコントローラに渡され、次にビューに渡されるとすぐに、コンテキストは閉じられます。ビュー内でデータが変更された後、コントローラはそれを元に戻します。ASP.NET MVCビューからの変更されたオブジェクトの保存Entity-Franework 4を使用したビュー

コントローラから、私はRepository.Update(MyEmp)を実行しました。

、私のリポジトリにコードが行く:

使用(VARコンテキスト=新しいmydbという())

 { 
      if (myEmp.ID != 0) // Checking if it's modified or new 
      { 

       context.Emp.Attach(MyEmp); 
       int result = context.SaveChanges(); 
       return myEmp.ID; 
      } 
     } 

問題 - 一度取り付けた、オブジェクトentityStateはそのままに行き、変更されていない、もちろん - 何もデータベースに保存されません。

私は間違っていますか?

答えて

1

デタッチエンティティ(2番目の部分)の保存に関するこの質問については、answerを確認してください。手動で状態を変更済みに設定する必要があります。また、オブジェクトグラフの保存について私のanswerをチェックしてください。問題は、オブジェクトグラフ内のすべてのエンティティとリレーションの状態を手動で設定する必要があることです。

+0

ここは正しいアプローチのようです。今すぐグラフをチェックする – Dani

0

私は取り付けが必要とされていないと思い、

Context.TryGetObjectByKey(EntityKey, EntityInstance); 
    //EntityInstance:Nothing to do with your entity just create new instance and pass it to this method. 

を変更するエンティティのためのコードの下に似て使用しています。

関連する問題