2012-02-24 6 views
0

私はsilverlight mvvm light frameworkを使用しています。指定したエンティティがこのEntitySetに含まれていません。エラーが発生しましたが、私のデータベースにはそのエンティティはすでに存在しています。取得指定したエンティティがこのEntitySetエラーに含まれていません

context.FormSection.Remove(formSection); 

このコードではエラーが発生しています。

これはあなたの次のコードを見私は、削除操作に

public void DeleteSectionQuestion(Form currentForm,CustomSectionTree selectedSectionQuestion, DeleteDelegate callback) 
    { 
     FormSection fs = new FormSection(); 

     foreach (Question q in selectedSectionQuestion.Questions) 
     { 
      fs.FormID = currentForm.FormID; 
      fs.SectionID = selectedSectionQuestion.SectionID; 
      fs.QuestionID = q.QuestionID; 
      context.FormSections.Remove(fs); 
     } 

     SubmitOperation so = context.SubmitChanges(); 
     so.Completed += (s, args) => 
     { 
      if (so.HasError) 
      { 
       so.MarkErrorAsHandled(); 
       callback.Invoke(false, so.Error); 
      } 
      else 
       callback.Invoke(true, null); 
     }; 
    } 
+0

コードを入力し、トレースをスタックする必要があります。私たちは助けられません。 – ken2k

答えて

1

をしています私のコードです:あなたはFormSectionの新しいインスタンスを作成し、その後にしようとしている

FormSection fs = new FormSection(); 

foreach (Question q in selectedSectionQuestion.Questions) 
{ 
    fs.FormID = currentForm.FormID; 
    fs.SectionID = selectedSectionQuestion.SectionID; 
    fs.QuestionID = q.QuestionID; 
    context.FormSections.Remove(fs); 
} 

複数回削除してください。 Entities/EntitySetそのようには動作しません:データベースから取得したエンティティをコンテキストが追跡します。つまり、データベースからのエンティティのインスタンスではないエンティティを削除しようとすると、というコンテキストではが不明です。

あなたのビューモデルに照会されたFormSectionsのリストがある必要があります。FormSectionのインスタンスを削除して、コンテキストによって認識されるようにしてください。

関連する問題