Действие удаления не работает для сущностей без зависимостей в структуре сущностей - PullRequest
0 голосов
/ 10 октября 2019

Вот мой код действия Удалить, и когда я пытаюсь удалить объект, который не содержит никаких зависимостей, он всегда возвращает индекс без удаления. Я просто хочу установить его только для сущностей с зависимостями, а другие должны разрешить удаление и добавить в журнал.

    // 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");
        }

1 Ответ

0 голосов
/ 10 октября 2019

Вы пытались добавить эту строку после удаления?

_work.SaveChanges();

Насколько я знаю, без него вы просто удаляете локально, и изменения сохраняются и в БД.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...