EFCF Use Case PostalCodes Delete
Een rij deleten in de PostalCodes tabel
Probleem
Een geselecteerde postcode in de lijst van de postcodes moet in de PostalCodes tabel in SQL server verwijderd worden. De Id, die in de querystring wordt meegegeven, wordt gebruikt om aan te geven welke rij er in de tabel gedeleted moet worden.
Design
We beginnen met het bestuderen van het use case diagram in Mikmak use cases PostalCodes. Vervolgens bestuderen we de beschrijving voor use case Postal Codes Delete dat ook in Mikmak use cases PostalCodes is opgenomen.
Oplossing
Hiervoor moeten we geen view maken, alleen een methode in de PostCodesController
toevoegen.
Als attribuut voor de methode voegen we [httpGet]
toe omdat de request vanuit een html hyperlink is verstuurd met de get methode.
We kiezen ervoor om na het deleten terug te keren naar de Selecting view om de lijst van de postcodes te tonen. In die lijst staat dan ook de verwijderde postocode niet meer.
[HttpGet] // ? zorgt er voor dat een null value geen fout geeft // int cannot be null // int? is shorthand for Nullable<int> which allows you to pretend // that an integer can handle nulls. public ActionResult Delete(int? id) { if (id == null) { ModelState.AddModelError("Ongeldige gegevens", "Geselecteerde postcode niet gevonden."); } else { LerenWerkenMetEFCF.Models.PostalCodes postalCodes = db.PostalCodes.Find(id); if (postalCodes == null) { ModelState.AddModelError("Ongeldige gegevens", "Geselecteerde postcode niet gevonden."); } else { db.PostalCodes.Remove(postalCodes); db.SaveChanges(); } } return View("Selecting", db.PostalCodes); }
We controlleren als er geen foutmeldingen in de ModelState
staan. Indien niet, deleten we de postcode in de PostalCodes tabel. Indien er validatiefoutmeldingen zijn voegen we die toe aan de ModelState
.
Tenslotte keren we terug naar de Selecting pagina van de PostalCodes sectie van de website.
JI
2015-10-06 22:11:31