2011-01-29 12 views
1

でオブジェクトツリーを削除子リストを反復しようとしています - 私はforeach内のコレクションを変更しているので例外が発生します - それは問題です...それを行う他の方法? (削除するごとに状態を設定しています)私はそれを行うことができますどのように<strong>(私はカスケード削除を使用する必要はありません)</strong></p> <p>I手動で、私は手動でオブジェクトとすべてを削除したい場合は、それは子供のエンティティフレームワーク

var myAssignemnt = (from s in context.Assignments.Include("ActivityInAssignments").Where(s => s.AssignmentID == AssignmentID) select s).FirstOrDefault(); 

foreach (ActivityInAssignment acc in myAssignemnt.ActivityInAssignments) 
{ 
    context.ObjectStateManager.ChangeObjectState(acc, System.Data.EntityState.Deleted); 
} 
context.ObjectStateManager.ChangeObjectState(myAssignemnt, System.Data.EntityState.Deleted); 
context.SaveChanges(); 

答えて

2

たぶん... in myAssignemnt.ActivityInAssignments.ToList()

+0

を試してみて、それがToListメソッド()とオリジナルではないコレクションで動作しますなぜあなたは – Dani

+0

はあなたが説明することができます(... 5分で受け入れる):-)再び右ですか? (問題はforeach関数内であり、ActivityInAssignmentコレクション内ではありません。 – Dani

+0

問題はコレクション内にあり、アイテムが '削除されました'に反応してforeachを無効にします。ToListは参照のコピーを作成します。変化に影響されません。 –

関連する問題

 関連する問題