Как заставить мой метод удаления принимать нулевые значения? - PullRequest
2 голосов
/ 24 октября 2019

Прямо сейчас этот метод удалит сообщение о работе, в котором заполнены все поля. Мне нужно, чтобы удалить работу, даже если все поля не заполнены (принимают нулевые значения). Вот метод контроллера:

        [HttpPost, ActionName("Delete")]
        [ValidateAntiForgeryToken]
        public ActionResult DeleteConfirmed(int id)  // triggered when Delete "Job Title" is pressed
        {
            Job job = db.Jobs.Find(id);  // finds Job to delete in Jobs table
            ShiftTime shift = db.ShiftTime.Find(id);  //  finds shifttimes attached to Job being deleted in ShiftTimes table
            JobOther other = db.JobOthers.Find(id); //  finds JobsOthers attached to Job being deleted in JobOthers table
            var schedules = db.Schedules.Where(x => x.Job.JobIb == id);    // finds list of schedules attached to Job being deleted in Schedules table
            foreach (Schedule schedule in schedules)  //  iterates through list of schedules attached to Job being deleted....
            {
                db.Schedules.Remove(schedule);  // ...and removes schedules
            }
            db.ShiftTime.Remove(shift);  // removes ShiftTimes
            db.JobOthers.Remove(other); // removes JobOthers
            db.Jobs.Remove(job);  // removes actual Job
            db.SaveChanges();   // finally saves changes to each table
            return RedirectToAction("Index"); // returns to "Index" list of Jobs 

        }

Я думаю, что мне придется включить некоторые операторы if / else, но я пробовал так много разных вариантов, но безрезультатно.

Ответы [ 2 ]

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

Вы пробовали:

db.Entry(job).State = EntityState.Deleted;

вместо

db.Jobs.Remove(job);
0 голосов
/ 24 октября 2019

Насколько я понимаю, для данного id всегда есть job, но не может быть других объектов shift, other, schedules. Чтобы получить job для удаления с другими значениями, равными NULL, выполните проверку на нулевое значение до удаления:

...