public async Task<IActionResult> DeleteConfirmed(string id) { // This block deletes an entry's dependencies in a database. var addresses = new List<Address>(); addresses = (from address in _context.Address where address.PersonId.Equals(id) select address).ToList(); foreach (var address in addresses ) { _context.Address.Remove( address); //execution from DB } var learner = _context.Learner.Include(lc => lc.LearnerCourse).Where(m => m.Person.NationalId.Equals(id)).FirstOrDefault(); if (learner != null) { foreach (var lc in learner.LearnerCourse ) { if(lc.LearnerCourseId != 0) _context.LearnerCourse.Remove( lc); //execution from DB } _context.Remove(learner); } var person = _context.Person.Where(m => m.NationalId.Equals(id)).FirstOrDefault(); _context.Person.Remove(person); await _context.SaveChangesAsync(); return RedirectToAction(nameof(Index)); }