Önceki makalelerimizde MVC 3 ve Entity Framework kullanarak bir projeye başlamış, verilerimizi listelemiş, yeni kayıt oluşturmuş ve var olan bir kaydı düzenleme işlemlerini incelemiştik. Projemizde Yazar tablomuzdaki kayıtları almıştık. Şimdi bu tablodan aynı yöntemle kayıt silme işlemini inceleyelim.
Bir önceki makalemizdeki örneğimize kaldığımız yerden devam edeceğiz. Önceki makalemizden veri yapısını inceleyebilirsiniz.
Entity Framework ile Delete işlemini gerçekleştirmemiş arkadaşlar, Entity Framework Delete makalesinden Entity Framework ile Delete işlemini hatırlayabilirler.
Bu örneğimizde, Index viewındaki listemizde bulunan “Delete” linkine tıklayıp veritabanından kaydı silelim ve tekrar Index viewına dönelim.
Bu işlem için 2 yerde düzenleme yapacağız.
- YazarController’a Delete isimli, yazarId parametresi alan bir Action ekleyeceğiz.
public ActionResult Delete(int yazarId)
{
var silYazar = (from y in _entity.Yazar where y.YazarId == yazarId select y).FirstOrDefault();
_entity.DeleteObject(silYazar);
_entity.SaveChanges();
return RedirectToAction("Index");
}
|
- Index view’ımızdaki Delete linkinin kodunu aşağıdaki gibi düzenleyeceğiz.
Linkimizin eski hali:
@Html.ActionLink("Delete", " Delete ") |
Linkimizin yeni hali:
@Html.ActionLink("Delete ", " Delete ", new { yazarId = item.YazarId }) |
Şimdi projemizi çalıştıralım.
Ekranda göründüğü gibi, Delete linkinin üzerine geldiğimizde aşağıda gideceği sayfa yer almaktadır. Delete?yazarId=1 ile Delete Action’ının yazarId parametre değerini 1 göndererek çağıracağını söylemektedir.
Delete linkine tıklayalım ve sonucunu görelim.
YazarId’si 1 olan kayıt veritabanından silindi ve yeniden Index sayfası açıldı.
Burada dikkat etmeniz gereken önemli noktalardan biri, Delete() action’ı için gerek olmadığından bir View oluşturmadık. Action methodunda silme işlemini gerçekleştirdik ve return’de Index View’ına geri dönmesini sağladık.
Veysel Uğur KIZMAZ
Bilgisayar Mühendisi