Entity Framework Entity Splitting – İki Tabloyu Tek Entity Altında Birleştirmek


Özellikle dizayn kalitesi yüksek veritabanlarında gerek performansın arttırılması, gerekse önem derecesi göz önüne alınarak tablolar ilişkilendirilerek birbirinden ayrıştırılırlar.
 
Aşağıdaki gibi bir yapınız olduğunu düşünelim.
Genel öğrenci bilgilerini Ogrenci tablosunda, bu öğrenciye ait detay bilgilerini de OgrenciDetay tablosunda tutuyoruz. Böyle bir mimariyi tercih etmemizin en büyük nedeni daha önce belirttiğim gibi önem derecesi düşük olan DogumYeri kolonunu farklı bir yerde tutup transaction ve bakım performansını arttırmaktır.
Her ne kadar fiziksel olarak ayrıştırmış olsak da, mantıksal olarak tüm kolonlar bir öğrencinin verilerine karşılık gelmektedir. Dolayısıyla ekleme,silme,güncelleme yaparken bu hususa dikkat etmek gerekecektir.
Şimdi Entity framework mimarisini kullanarak bu iki tabloyu tek entity’de toplayalım. Adımları izleyiniz.
1.Adım: Tablolarınızı bir modele ekleyiniz. Ve aşağıdaki gibi bir görüntüyü elde ediniz.
2.Adım: ÖğrenciDetay entitisinde bulunan DogumYeri kolonu üzerinde sağ tıklayıp kopyalayınız,Ogrenci entitisine yapıştırınız.
3.Adım: OgrenciDetay entitisi üzerinde sağ tıklayıp siliniz. Gelen uyarıdan “No” seçeneğini seçiniz. Böylece OgrenciDetay modelden silinmeyecektir. Aşağıdaki görüntüyü elde ediniz.
4.Adım: Öğrenci entitisini seçip “Mapping Details Window” penceresinden Add a Table or View seçeneği ile OgrenciDetay entitisini seçiniz. Aşağıdaki görüntüyü elde ediniz.
5.Adım: Artık hem Ogrenci hem de OgrenciDetay tablolarını aynı entity den(Ogrenci) kontrol edebiliriz. DogumYeri özelliğinin de geldiğini göreceksiniz.
  1. OkulEntities oe = new OkulEntities();
  2.        Ogenci ogrenci = new Ogenci();
  3.        ogrenci.Ad = “Engin”;
  4.        ogrenci.Soyad = “Demiroğ”;
  5.        ogrenci.BabaAdi = “Remzi”;
  6.        ogrenci.DogumYeri = “Ankara”;
  7.        ogrenci.Id = 1;
  8.        oe.AddToOgencis(ogrenci);
  9.        oe.SaveChanges();
İşin güzel tarafı Entity Framework bizim için verileri bir güzel ayrıştırıp ilgili tablolara atacaktır.
Faydalı olması dileğiyle.
Engin Demiroğ,MCT,engin@yazilimDevi.com
Share Button

Comments 0

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

* Copy This Password *

* Type Or Paste Password Here *

12.609 Spam Comments Blocked so far by Spam Free Wordpress

More From: Entity Framework

DON'T MISS