當試圖向站點添加「實體」時出現此錯誤。一個實體對象不能被IEntityChangeTracker的多個實例引用
網站與「實體」之間的關係是一對多「的實體對象不能被IEntityChangeTracker的多個實例的引用」。
我的模型看起來如下:
網站:
public class Site : Model
{
// The collection of Entities belonging to this site
public virtual ICollection<Entity> Entities { 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 class Entity : Model
{
public string Label { get; set; }
public string Name { get; set; }
public virtual Site Site { get; set; }
}
我的控制器代碼:
public void Add(Entity entity)
{
DateTime dateModified = DateTime.Now;
entity.CreatedOn = dateModified;
entity.LastUpdatedOn = dateModified;
this._context.Entities.Add(entity);
this._context.SaveChanges();
}
請建議解決方案。
你在'_siteRepository'和'_entityRepository'中使用了兩個不同的'_context'實例嗎?這將是例外的原因。 – Slauma
'_entityModel.ToEntity()'做了什麼? –
嗨,你可以在路徑中找到完整的源代碼文檔https://docs.google.com/document/d/1lYThMsXGnd2UoG-BdBiwRYDyo2Db3reF3osSDfOipO0/edit –