コンテキストの SaveChanges() メソッドが呼び出されると、変更の反対側の関係が自動的に更新されます。
たとえば、littleJohnny を含む生徒の仮想 ICollection を持つ教師 mrX があったとします。
mrX.Students.Remove(littleJohnny);
Debug.Assert(littleJohnny.Teacher!=null); //assert should pass
context.SaveChanges();
Debug.Assert(littleJohnny.Teacher==null); //assert should pass
mrX.Students.Add(littleJohnny);
context.SaveChanges();//revert to previous state
littleJohnny.Teacher=null;
Debug.Assert(mrX.Students.Contains(littleJohnny)); //assert should pass
context.SaveChanges();
Debug.Assert(!mrX.Students.Contains(littleJohnny)); //assert should pass
Entity Framework 4.3 および 5.0 のデータベースにデータを保存せずに、このような関係を更新する方法はありますか?
別のシナリオでは、上記のエンティティにマップする ViewModel がある場合、この EF の動作をコピーできる簡単な方法はありますか?つまり、関係を追跡し、メソッドの呼び出し時に関係を更新しますか?