MVC Kod Yazmadan CRUD (Create Read Update Delete) Veritabanı İşlemleri

Bu yazımda MVC ’de kod yazmadan veritabanı işlemlerimizi nasıl yapacağımızdan bahsedeceğim. Yeni bir MVC projesi oluşturalım. (Mvc projesi oluşturma konusuna buradan bakabilirsiniz.)

Boş template seçiyoruz. MVC klasörlerini oluşturması için MVC kutucuğunu işaretliyoruz.

MVC klasörlerimiz oluştuktan sonra App_Data’ya sağ tıklayarak veritabanı klasörü ekleme işlemine geçiyoruz. Add > New Item dedikten sonra Data sekmesi altından Sql Server Database’i seçip bir isim veriyoruz.

Bağlantıyı kurduktan sonra database’i seçip Table’a sağ tıklayıp yeni tablo ekle diyoruz. Örn. Kisiler tablosu. ID kolonunu zaten oluşturuyor. Bu alanda tek yapmamız gereken birer birer artması için ID kolonunun properties inden Identıty Specification da Is Identıty özelliğini true olarak seçmek.

Tablomuzda Ad, Soyad, Telefon ve Yas alanları olsun. Tablonun adını verip Update ile kaydediyoruz.

Veritabanına tablomuzu oluşturacağı Scripti oluşturuyor. Açılan pencerede Update Database butonuna tıklayarak tablomuzu oluşturuyoruz.

Table klasörünü yenileyince tablonun oluştuğunu görüyoruz.

Bundan sonra ki adımda Model oluşturuyoruz. Veri tabanı işlemlerini yapabileceğimiz Entıty Data Model oluşturmak. Models >  Add >  New Item > Data Model adımlarını takip ediyoruz. Data sekmesinde ADO.NET Entity Data Model i seçiyoruz.

Modelin adını Model verip tamam diyoruz.

EF Designer From Database i seçiyoruz. Yani bir veritabanını baz alarak, önce veritabanı mantığıyla veritabanı modelimizi oluşturuyoruz. İleri deyince bağlantı istiyor.

Biz zaten App_Data klasörünün altına local veritabanı oluşturduk ve onu eklerken oluşan bağlantı bu pencereye geldi. Eğer gelmeseydı yanı Sql Server üzerinde bir veritabanı oluşturmuş olsaydık New Connection  diyip Servername’i  girerek oradaki veritabanlarına ulaşıp bir bağlantı kurabilirdik. Burada bağlantıya bir isim vermemizi istiyor ve Connection String’e ekleyeceği bağlantı cümlesini gösteriyor. İleri dediğimizde açılan sayfandan Freamwork versiyonu seçiyoruz tekrar ileri dediğimizde  işlem  yapacağımız tabloları seçiyoruz.

Tekil ve çoğullaştırma işlemini yapıyor. Tabloların sonuna s takısı ekliyor. (pluralize or singularize generated object name)

Finish dedikten sonra bizim için modelimizi oluşturuyor. İşlem süresi tabloların sayısına göre değişir.

Modelimiz oluştuktan sonra projeyi Build etmemiz gerekiyor. Eğer Build etmeden Controller eklemeye çalışırsak bize projeyi Build etmemiz gerektiği yönünde hata verecektir.

Bu noktadan sonra bir tablo daha eklersek modele sağ tık Update Model from Database deyip yeni eklediğimiz alanları seçerek ekle yapabiliriz.

Sonra ki adımımız Controller eklemek. Controller ‘a sağ tıklayıp Controllar > Add > Controller a tıklıyoruz.

Burada boş bir Controller oluşturabilirsiniz. Okuma ve yazma Actionlarını hazır olarak getireceğimiz Controller oluşturlabiliriz. Ya da modeli göstererek modeldeki tablolara göre bizim için hem Controllerda Actionları hem de bu Actionlar için Viewlerı oluşturan MVC5 controller with views. Biz bu seçeneği kullanacağız. Seçip ekle diyoruz. Model classını soracak bize.

Bu alandan tablomuzu seçiyoruz. Data context classımızı secıyoruz.  Generate views seçmezsek sadece Controller’ları oluşturur kendimiz oluşan Controllerlara Add View diyerek viewlerini olustururuz. Seçersek Viewlerımız hazır gelir. Reference script libraries seçeneğini deişretli hale getirerek Script kütüphanelerini referance et dıyoruz. Layout oluşturuyor bizim için. Controller ismi veriyoruz ve Add diyerek devam ediyoruz. Ekledikten sonra bizim için Controller ve Viewler hazırlanıyor. İşlem bittiğinde Controller klasörü altında KişilersController oluştuğunu görüyoruz. Controller içinde kodlar ile birlikte oluştu. Bu seçeneği seçmiş olmasaydık bu kodları biz elle oluşturacaktık.

Bir detaya değineceğim, projemizi Start butonundan açtığımızda adres çubuğunda http://localhost:2069 şeklinde bir adres çıktı fakat kaynak bulunamadı dedi. Bunun sebebi bir Controller ve Action a ulaşamamış olması. Bu adresin yanına  /Kisilers/Index eklemesini yaparsak bu durumdan kurtulmuş oluruz. Bunu yaparak biz Kisilers Controller’ı altında  bulunan Index Action’unu çalıştır demiş olduk . Ve program Index Action’una gitti. Index Action’u da bize Index View’ını döndürdüğü için Index sayfası açılmış oldu. Ya da doğrudan App_Start klasörü altında bulunan RouteConfig.cs den Controller ve Action alanlarına istediğimiz isimleri yazarak MVC programın açılış sayfasını ayarlayabiliriz.

Şimdi projeyi çalıştırıp oluşan Actionları biraz açıklamam gerekirse, Index Action’ı kişilerin listesini çekiyor. Bu örnek için konuşacak olursa veritabanında kayıtlı olan kişilerin listesini ekrana getirir.

Details Action’ı ID ye göre kişinin detayını getiriyor. Yani Index ile gelen listede herhangi bir satırın yanından Detail butonuna tıkladığımız zaman o kişinin detayına gider.

Create Action’ u yeni kişi oluşturuyor.

Gelelim Edit Action’una, gördüğünüz gibi iki tane Edit Action u  var . Bunlardan ilki Edit butonuna tıklandığında açılan sayfanın Controller’ıdır.  Aldığı ID ye ait kişinin bilgilerinin düzenleme modunda açılmasını sağlar. Bu pencerede istediğimiz düzenlemeleri yaptıktan sonra Kaydet butonuna tıklarız. İşte diğer Edit Action u burada kullanılan Actiondur. Düzenleme modunda yapılan değişiklikleri veritabanına kaydeder. Yani ilki varsayılan düzenleme sayfası için kullanılırken diğeri bu sayfanın Post olmasından sonra kullanılır.

Silme Action’u kullanıcıyı silmek istediğimizde bir sayfaya yönlendirir burada size ‘Silmek istediğinize emin misiniz? ’ diye sorar tekrar Sil derseniz kaydı silersiniz ya da Index sayfasına geri dönebilirsiniz.  Controllerlar bu şekilde.

Viewlere gelecek olursak Controllerda ki Actionların karşılığı olan Viewlarda burada oluşturulmuş durumda.

Tasarımsal müdahalelerde bulunarak görünümü daha güzel hale getirmek size kalmış. Anlatacaklarım bu kadar Soru ve görüşleriniz için yorum yapabilirsiniz. Kolay gelsin .. 🙂

 

4 thoughts on “MVC Kod Yazmadan CRUD (Create Read Update Delete) Veritabanı İşlemleri

    1. Tabi . Yazımda da bahsediyorum bu konudan “Biz zaten App_Data klasörünün altına local veritabanı oluşturduk ve onu eklerken oluşan bağlantı bu pencereye geldi. Eğer gelmeseydı yanı Sql Server üzerinde bir veritabanı oluşturmuş olsaydık New Connection diyip Servername’i girerek oradaki veritabanlarına ulaşıp bir bağlantı kurabilirdik. “

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir