0

「エンティティ」をサイトに追加しようとすると、このエラーが発生します。

「エンティティ オブジェクトは、IEntityChangeTracker の複数のインスタンスによって参照できません」

サイトと「エンティティ」の関係は 1 対多です。

私のモデルは以下のように見えます:

サイト:

public class Site : Model
{
 // The collection of Entities belonging to this site
 public virtual ICollection<Entity> Entities { get; set; }
}

実在物:

public class Entity : Model
{
 public string Label { get; set; }
 public string Name { get; set; }
 public virtual Site Site { get; set; }
}

コントローラーの私のコード:

[HttpPost]
public ActionResult Add(EntityModel _entityModel)
{
  var model = _entityModel.ToEntity();
  if (ModelState.IsValid)
  {
    model.Site = _siteRepository.Find(1);
    model.Label = model.Name.Replace(' ','_').ToLower();
    _entityRepository.Add(model);
  }

   return RedirectToAction("Index");
} 

EFEntityRepository.cs のコード:

public void Add(Entity entity)
{
  DateTime dateModified = DateTime.Now;
  entity.CreatedOn = dateModified;
  entity.LastUpdatedOn = dateModified;
  this._context.Entities.Add(entity);
  this._context.SaveChanges();
 }

解決策を提案してください。

4

1 に答える 1

0

おそらくキーによって、このオブジェクトへの参照を保持する複数の Context クラスがある場所のように思えます。すべてのリクエストの後にコンテキストが破棄されていることを確認してください。さらに、別のコンテキスト インスタンスがこのエンティティを保持する原因となる他の操作がないことを確認してください。

于 2012-05-18T17:33:34.993 に答える