私のプロジェクトでは、StudentとBackpackエンティティがあります。バックパックは学生(1対多)を参照します。だから私はDBに学生の記録があり、それには2つのバックパックがあります。私はDBから学生を積み込み、バックパックの数を取得しています。その場合は2つ戻ってきます。リストに新しいバックパックを追加すると、コレクションから既存の2つのバックパックが削除されます。複雑さのために私のコードを投稿することはできません。私は何をしているのか説明しようとします。 BackpackのStudentリファレンス・プロパティー・セッターで、Student's Backpacksコレクションにバックパックが存在するかどうかをチェックしています。そうでなければ、リストにバックパックを追加します。次に、オブジェクトをEntity Frameworkコンテキストに追加します。ここではそのためのコードは次のとおりです。Entity Frameworkは、新しいアイテムを追加するときにコレクションから既存のアイテムを削除しています
if (entity != null && EFContext.Entry(entity).State == EntityState.Detached)
{
try
{
var entityType = entity.GetType();
GetObjectContext.AddObject(entityType.Name + "s", entity);
}
catch (Exception ex)
{
if (!ex.Message.Contains("Object references between two different object scopes are not allowed"))
{
throw;
}
}
}
デバッガは、Entity Frameworkのは、リストから既存のオブジェクトを削除された投稿のコードの最初の行に当たります。私はまだ成功していない、単純なプロジェクトで同じ問題を再現しようとしているが、午前
:ここでは、コールスタックです。 EFがコレクションのナビゲーションプロパティからオブジェクトを削除する理由を知っている人は誰ですか?