State
設定すると、データベース内のエンティティを更新するプロパティがあります。
問題は、このプロパティが複数のスレッドにまたがって設定されており、ジョブ フィールドが同時に 2 つのコンテキストにアタッチされることがあり、次の例外が発生することです。
エンティティ オブジェクトは、IEntityChangeTracker の複数のインスタンスによって参照できません。
ステートメントの周りにロックを使用しようとしましたusing
が、これは機能しません:
private Job job;
public string State
{
get
{
return job.State;
}
set
{
lock (job)
{
using (MyEntities context = new MyEntities())
{
context.Jobs.Attach(job);
job.State = value;
context.SaveChanges();
}
}
}
}
これについて最善の方法は何ですか?