У меня есть объекты виджетов, которые принадлежат объектам компании. Между компаниями и виджетами существует отношение один ко многим.
У меня есть сущности WidgetDetail, принадлежащие сущностям виджетов. Между виджетами и WidgetDetails существует отношение один-ко-многим.
Компании имеют CompanyId.
Виджеты имеют CompanyId и WidgetId.
WidgetDetails имеют WidgetId и a WidgetDetailId.
Вот мой первый проход по методу Delete для удаления WidgetDetail:
public async Task<ActionResult> DeleteWidgetDetail([FromRoute] int companyId, [FromRoute] int widgetId, int widgetDetailId)
{
WidgetDetail widgetDetail = await _myContext.Widgets
.Where(w => w.CompanyId == companyId && w.WidgetId == widgetId)
.AsNoTracking()
.SelectMany(w => w.WidgetDetails)
.Where(wd => wd.WidgetDetailId == widgetDetailId)
.FirstOrDefaultAsync();
if (widgetDetail == null)
{
return NotFound();
}
else
{
widgetDetail.IsDeleted = true;
await _myContext.SaveChangesAsync();
return Ok();
}
}
Я могу зайти в него и увидеть, что для свойства IsDeleted установлено значение false, но это изменение не передается в базу данных.