我正在尝试更新两个表Situation
和SituationCategory
,但它没有像下面的代码和图片中提到的那样进行更新。
public async Task<bool> UpdateSituation(int id, SituationsDto data)
{
Situations result = _mapper.Map<SituationsDto, Situations>(data);
result.Deleted = true;
_context.Entry(result).State = EntityState.Modified;
await _context.SaveChangesAsync();
SituationCategories situationCategory = new SituationCategories();
if (result.SituationCategory != null)
{
if (situationCategory != null)
{
situationCategory.Description = result.SituationCategory.Description;
}
}
await _context.SaveChangesAsync();
}
在此屏幕截图中,我突出显示了应更新的数据:
请回答
答案 0 :(得分:0)
除非您将给定对象附加到上下文,否则EF上下文对对象一无所知,或者您最初从上下文中检索了一个对象。
而不是仅仅将实体标记为已修改:
_context.Entry(result).State = EntityState.Modified;
您需要致电Update()
,然后开始跟踪实体&amp;将其标记为已修改,因此,当您调用SaveChanges()
时,更改将写入DB:
_context.Update(result);
PS。在这种情况下,我只会在您的方法结束时拨打SaveChanges()
一次。