Asp.Net MVC 5 – Model Ekleme
Bu makalede, Asp.Net MVC Model eklemeyi ve Model kullanarak Movie isimli bir veritabanında yer alan tablolarımızı yönetmeyi öğreneksiniz.
MVC, Model-View-Controllers kelimelerinin kısaltmasıydı. Daha önceki makalelerimde Controller (denetleyici) ve View (görünüm) konularına detaylıca değindim. View, uygulamalarımızın kullanıcı arayüzünü oluşturan katman, Controller ise bu görünüm dosyalarını yönettiğimiz, denetlediğimiz ara katmandı. Bizler uygulamalarımızda oluşturduğumuz Modellere (nesnelere) arayüz üzerinden doğrudan erişmiyoruz. Oluşturduğumuz modelleri (nesneleri) denetleyiciler aracılığı ile arayüzlere (görünümlere) taşıyarak işlemlerimizi gerçekleştiriyoruz.
Yeni yazılım yaklaşımında tüm yazılım mimarileri kendilerini “Katmanlı Mimari” dediğimiz yapılara dayandırmıştır. Bu prensip ile kullanıcı arayüzleri, kullanıcılara sunacakları verilere doğrudan erişmek yerine bir ara iş katmanı kullanır. Bu ara iş katmanı genel yazılım geliştirmelerde “Bussiness Layer” olarak adlandırılırken, MVC Web geliştirme teknolojilerinde daha fazla standarda oturtulmuş ve “Controller” (denetleyici) ismini almıştır. Bizler iş yapan, kontrol eden, denetleyen kodlarımızı Controller katmanı içerisinde oluşturduk. Kullanıcıya göstereceğimiz arayüzleri View katmanında oluşturduk. Şimdi ise Model katmanı ile, nesnelerimizi, veri tabanı bağlantılarımızı (-yada doğrudan verilerimizi) oluşturacağız. Denetleyiciler bizim için bu modelleri işleyerek görünümlere aktaracak.
Ön bilgi olarak şuna da değinmekte fayda görüyorum, biz veri tabanı yönetimi için Entity Framework olarak bilinen (genellikle EF olarak adlandırılır) veri yönetim kütüphanesinden faydalanacağız. Entity Framework ile ilgilide detaylı bir makale yazacağım. Şimdilik bilmeniz gereken şey şu ki, Veritabanını bağlantılarında, veritabanı sorgularında, Update, Delete, Insert işlemlerinde ADO.Net’e göre çok daha kolay, hızlı ve güvenli sonuçlar alacağız. Hadi başlayalım….
Model sınıfları ekleme
Solution Explorer, Models klasörüne sağ tıklayın, Add‘ yi ve ardından Class‘ ı seçin.
Yeni sınıfınıza “Movie” adını girin .
Sınıfına aşağıdaki beş özelliği ekleyin Movie :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | using System; namespace MvcMovie.Models { public class Movie { public int ID { get; set; } public string Title { get; set; } public DateTime ReleaseDate { get; set; } public string Genre { get; set; } public decimal Price { get; set; } } } |
Bir veritabanındaki filmleri yönetmek için “Movie” sınıfını kullanacağız. Bir nesnenin her örneği, bir veritabanı tablosundaki bir satıra karşılık gelir ve “Movie” sınıfının her özelliği “Movie” tablodaki bir sütunla eşlenir.
Not: System.Data.Entity ve ilgili sınıfı kullanabilmek için Entity Framework NuGet paketini yüklemeniz gerekir.
Aynı dosyaya, aşağıdaki MovieDBContext sınıfı ekleyin, bu sınıfın DbContext isimli sınıftan türetildiğini gözden kaçırmayın. DbContext, Entity Framework’de bulunan temel bir sınıfıdır.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | using System; using System.Data.Entity; namespace MvcMovie.Models { public class Movie { public int ID { get; set; } public string Title { get; set; } public DateTime ReleaseDate { get; set; } public string Genre { get; set; } public decimal Price { get; set; } } public class MovieDBContext : DbContext { public DbSet<Movie> Movies { get; set; } } } |
MovieDBContext Sınıfı, bir veritabanında sınıf örneklerinin getirilmesini, depolanmasını ve güncelleştirilmesini işleyen Entity Framework Movie veritabanı bağlantısını temsil eder.
Ve DbContext sınıfını kullanabilmeniz için, kodlarınız en üstüne alttaki ifadeyi eklemeniz gerekir.
1 2 3 | using System.Data.Entity; |
using System.Data.Entity; ifadesini el ile ekleyerek yapabilir veya kırmızı dalgalı çizgilerin üzerine geldiğinizde Show potential fixes’e tıklayıp using System.Data.Entity; seçeneğini seçebilirsiniz.
Not: Visual Studio, kullanılmayan bağımlılıkları gri olarak gösterecektir. Kullanılmayan bağımlılıkları gri bağımlılıkların üzerine gelerek kaldırabilirsiniz.
Artık kullanabileceğimiz bir Model var. Sonraki bölümde, veritabanı bağlantı ile çalışacaksınız.