Вот мой код действия Удалить, и когда я пытаюсь удалить объект, который не содержит никаких зависимостей, он всегда возвращает индекс без удаления. Я просто хочу установить его только для сущностей с зависимостями, а другие должны разрешить удаление и добавить в журнал.
// GET: Company/5/Delete
[Route("{companyPk:int}/Delete")]
public async Task<ActionResult> Delete(int? companyPk)
{
//Validate parameters
if (companyPk == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest, "Company identifier is missing.");
}
//Get the model from db
Company company = await _work.Companies.GetAsync(companyPk);
if (company == null)
{
return HttpNotFound();
}
//Convert model to dto
CompanyDto companyDto = _mapper.Map<CompanyDto>(company);
return View(companyDto);
}
// POST: Company/5/Delete
[HttpPost, ActionName("Delete")]
[ValidateAntiForgeryToken]
[Route("{companyPk:int}/Delete")]
public async Task<ActionResult> DeleteConfirmed(int companyPk)
{
//Get the model from db
Company company = await _work.Companies.GetAsync(companyPk);
var Related = _work.Companies.Where(i => i.CompanyPk == companyPk)
.Include(i => i.Departments)
.Include(i => i.Locations);
//.FirstOrDefault();
if (Related != null)
{
ViewBag.Message = String.Format("Company Pk has dependencies for Department and Location. Can't Delete");
return RedirectToAction("Index");
}
//Prepare log model
var logCompany = _mapper.Map<LogCompany>(company);
logCompany.RecordId = 0;
Utilities.Instance.SetLogEntityProperties(logCompany, "D");
//Save model to db
_work.LogCompanies.Add(logCompany);
_work.Companies.Remove(company);
await _work.CompleteAsync();
return RedirectToAction("Index");
}