Я пытаюсь использовать:
// this is a BreakHistory class from the ADO.NET Data Entity Model _entities
_entities.AddToBreakHistory(this);
_entities.SaveChanges();
и я получаю «На объект сущности нельзя ссылаться несколькими экземплярами IEntityChangeTracker». ошибка
Я думаю, что мой код обновления:
_entities.ApplyPropertyChanges(this.EntityKey.EntitySetName, this);
_entities.SaveChanges();
и я думаю, что, вероятно, получу такую же ошибку.
Должен ли я получить объект originalBreakHistory как таковой?
var originalBreakHistory = (from bh in _entities.BreakHistorySet where bh.BreakHistoryID = id select bh).FirstOrDefault();
- Обновлено в 16:40 того же дня
Кажется, у меня может быть другая проблема, которая может быть связана.
Я добавляю объект сущности Manager к текущей сущности BreakHistory, поскольку они связаны, и я получаю эту ошибку:
«Невозможно определить отношения между двумя объектами, поскольку они присоединены к разным объектам ObjectContext».
Может ли эта ошибка быть из-за того, что я использую ту же модель сущности, но вызываю "new" для объектов сущности и загружаю их из БД ??
Вот мой код:
protected void lstBreaks_ItemCommand(object source, RepeaterCommandEventArgs e)
{
var bh = new BreakHistory().CurrentBreakRequest(int.Parse(e.CommandArgument.ToString())).CurrentManagerIs(GetManagerEntityByUserName());
switch (e.CommandName)
{
case "Approve":
bh.Approve();
break;
case "Deny":
bh.Deny();
break;
case "Push":
bh.Push();
break;
}
bh.Save();
LoadBreakList();
}
Код для примера на Утверждении - bh.Approve () выглядит так:
public BreakHistory Approve()
{
this.DateApproved = DateTime.Now;
this.ManagerApprove = CurrentManager;
return this;
}
Менеджер может утверждать, отклонять или выдвигать запрос, поэтому менеджер связан с BreakHistory через ManagerID.