私は非常に奇妙なケースを観察してきました。
foreach (var obj in objs)
{
// a - unattached object
DomainObject a = this.dict[key];
using(var context = new DomainModelContainer())
{
this.SomeMethod(context, a);
}
}
...
private void SomeMethod(DomainModelContainer context, DomainObject obj)
{
// some code here with the query
context.Entry(obj).State = EntityState.Unchanged;
}
結局のところ、例外が発生します。同じキーを持つオブジェクトがObjectStateManagerにすでに存在します。ObjectStateManagerは、同じキーを持つ複数のオブジェクトを追跡できません。
DbContextの新しいインスタンスが本当に新しいのかどうか疑問に思います。そうでない場合は、どうすれば完全に「クリア」できますか?