在同时修改和添加子行时,我遇到了一些麻烦。我正在使用答案中的技术:stackoverflow.com/questions/5557829/ ...。
问题出在以下代码中:
public void EditReport(tbl_inspection inspection)
{
foreach (var roll in inspection.tbl_inspection_roll)
{
container.tbl_inspection_roll.Attach(roll);
container.ObjectStateManager.ChangeObjectState(roll, (roll.id_inspection_roll == 0) ? EntityState.Added : EntityState.Modified);
}
container.SaveChanges();
}
我总是至少有 1 行要更新。当我要添加 1 行时,它工作正常,问题是当我尝试同时添加多于 1 行时,显示众所周知的错误:
ObjectStateManager 中已存在具有相同键的对象。ObjectStateManager 无法跟踪具有相同键的多个对象。
感觉好像我在这里错过了一些东西......