Entity Framework ve Code First Mimarisi

Entity Framework ve Code First Mimarisi

 10.7.2017 00:28:58  MVC 5  (0)

Visual Studio’yu açarak Code First yapısını göstermek için bir proje oluşturalım. Ben VS2015’i açarak bir ASP.NET projesi oluşturuyorum.

 

Projemin adı CodeFirstProject, proje türü ASP.NET projesi (Empty).

 

Proje türünü seçiyorum…

Projeyi oluşturduktan sonra Models klasörü altına Entities diye bir klasör ekledim.

Models klasörü altında veritabanında istediğimiz tablolar ve onlarla ilgili ne gibi değişiklikler yapmak istiyorsak onları barındıracak. Veritabanında her bir tabloyu bir varlık olarak düşünebiliriz ve bu varlıkları Entities klasöründe her bir tabloyu bir sınıf olarak yazacağız.

Bu projede bir personel sistemi üzerinden hareket edelim, şirketimizde müdürümüz, yöneticimiz ve mühendislerimiz olmak üzere 4 personel tipi olduğunu varsayıyorum ve bu tipleri unvan olarak kullanalım projemizde. Unvanlar tablosunun Adı, Açıklama ve OluşturulmaTarihi bilgilerini veritabanında saklamak istiyorum. Ayrıca personellerimizin de Ad, Soyad, Email Adresi ve İşe Giriş Tarihi bilgilerini de tutmak istiyorum. Tabii bu personellerin tiplerini de bilmem gerektiğini de unutmayalım ona göre veritabanımızı modelleyeceğiz. Projeyi kompleks hale sokmamak için sadece bu iki veriyi işleyerek veritabanımızı Code First mimarisine uygun olarak yazalım, önemli olan bu mimariyi anlamanız.

Entities klasörü altında 2 adet class oluşturarak başlayalım. Personel ve Unvan bilgisini tutmak için oluşturduğum classlar Personel.cs ve Unvan.cs.

Projeye class eklemek için Entities klasörüne sağ tıklayıp Add > Class adımlarını takip ediyoruz.

Class’a bir isim vererek ekliyorum, aynı işlemi Unvan  class’ı için de gerçekleştirin. 

 

Class tanımlamalarını yaptıktan sonra sıra alanları oluşturmaya geldi. Aşağıdaki resimlerde görebileceğiniz üzere Personel ve Unvan sınıflarının içerikleri var. Aynı şekilde sınıflarınızı oluşturun ve ufak birkaç aklınıza takılabilecek konular üzerinde konuşalım. Kodları neden direk vermiyorum diye sorabilirsiniz, kodları sizin yazmanız bu mimariyi daha hızlı öğrenmenizi sağlayacaktır. Yazı dizisi tamamen bitince projeyi sizlerle paylaşacağım.

 

Şimdi bu iki sınıfta da dikkatinizi çeken ya da aklınızda soru işareti oluşabilecek noktalara açıklık getirmek istiyorum. Personel sınıfında Unvan tipinde ve Unvan adında bir property dikkatinizi çekmiş olabilir(altı kırmızıyla çizili).

public virtual Unvan Unvan { get; set; }

Bu alanı sizce neden yazmış olabiliriz? İleride projemizi yazarken Personel’in bağlı olduğu ünvanın adını ya da oluşturulma tarihini öğrenmek istersek nasıl yapacağız? Buradaki bu tanımlama işte bize bunu sağlıyor. Başka yollardan da yapabilirsiniz fakat bu tanımlama ile Lazy Loading olayı sayesinde personelin bağlı olduğu ünvanın tüm bilgilerini bu şekilde kolayca alabiliriz.

Diğer Unvan sınıfında da benzer bir durum var, fakat Unvan sınıfında ICollection<Personel> tanımı içeren bir satır görüyorsunuz. Onu da tahmin edersiniz ki, o ünvana bağlı personelleri liste olarak almak içindir. Örnek vermek gerekirse şirketimizde Mühendis ünvanına sahip personelleri listelemek için bu ilgili satır bizim yardımımıza koşacaktır. İleri de projeye döktükçe örnekler verdikçe daha rahat anlayacağınıza emin olabilirsiniz.

 

 Etiketler:

 Yorumlar

Yorum Gönder 

 Facebook Profil