Я пробовал много разных способов удалить некоторые строки для IncidentDescriptions
DBContext, но я действительно не могу понять это.В окне отладки есть ID и описание, которое выводится на печать, отображаемое из этой строки, поэтому я знаю, что выбрана строка, которая не может быть проблемой:
foreach (var desc in DB.IncidentDescriptions.Where(d => d.AccidentHeaderId == supervisor.AccidentHeaderId)) {
System.Diagnostics.Debug.WriteLine(desc.Id + " " + desc.Description);
}
Контроллер:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit([Bind(Include = @"Id,AccidentHeaderId,DateLastModified,LastModifiedUsername,DateAccidentReported,EmployeeReported,ReportedInSameShift
,DateReportedOutsideShift,AccidentLocation,IncidentDate,IncidentTime,MedicalAttention,Clinic,ReturnToWork,DrugScreenPapers,DamageDesc,MissDollarEst,ActsContributed
,CorrectiveActions,DiscusedWithEmployee,WorkOrderComplete,Comments,AccidentNarrative,FirstName,LastName,DrugTested,FirstNameReportedTo,LastNameReportedTo
,DateInvestigationStarted,TimeInvestigationStarted,DeptManager, HospitalName,
BodyPartXREF, EmployeesInvolved, IncidentDescriptions, InjuryDescriptionXREF, UnsafeActXREF, WitnessesInvolved
")] AccidentSupervisorViewModel supervisor, List<string> SelectedUnsafeActs, int? SelectedLocation, List<string>DescriptionUser, List<string>DescriptionPosition)
{
if (ModelState.IsValid)
{
using (DB)
{
using (var contextTransaction = DB.Database.BeginTransaction())
{
try
{
foreach (var desc in DB.IncidentDescriptions.Where(d => d.AccidentHeaderId == supervisor.AccidentHeaderId)) {
System.Diagnostics.Debug.WriteLine(desc.Id + " " + desc.Description);
}
DB.IncidentDescriptions.Remove(DB.IncidentDescriptions.FirstOrDefault(d => d.AccidentHeaderId == supervisor.AccidentHeaderId));
DB.SaveChanges();
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine(ex.Message);
contextTransaction.Rollback();
}
}
}
return RedirectToAction("Index", "Incident");
}
return View(supervisor);
}