Bu makalemizde Entity Framework’ün veritabanı ilişkilerini kullanımda sağladığı kolaylıkları inceleyelim.
Örnek uygulamamızda Yazar ve Makale tablolarımız yer almaktadır. Makalemizin bir yazarı olduğunu belirtmek için Makale tablomuzun YazarId sütunu ile Yazar tablomuzun Id sütunu arasında ilişki kuruyoruz.
Veritabanımızı oluşturduktan sonra Visual Studio’da yeni projemizi oluşturup işlemlerimize başlayalım.
Projemize Ado.Net Entity Model ekliyoruz. Eklediğimiz modele veritabanında oluşturduğumuz tabloları ekliyoruz.
Şimdi Entity’nin kodlama sırasındaki avantajlarını örnekler üzerinde inceleyelim.
İlk örneğimizde bir makalenin tanım, açıklama, detay, yazar adı soyadı bilgilerini almak istiyoruz. Standart SQL kodlamasında bu işlemi join ile gerçekleştiriyoruz. Örneğin,
|
DenemeDbEntities provider = new DenemeDbEntities();
var makale = (from m in provider.Makale
join y in provider.Yazar
on m.YazarId equals y.Id
where y.Id == 1
select new
{ m.Tanim, m.Aciklama, m.Detay, y.AdSoyad }).FirstOrDefault();
|
Şimdi Entity Framework’ün getirdiği kolaylıklar çerçevesinde hazırladığımız kodu inceleyelim. Bu işlemde Makale ve Yazar tablolarımızın arasında ilişki olduğundan Makale tablosundan Yazar tablosuna join yapmadan geçiş yapabiliyoruz.
|
DenemeDbEntities provider = new DenemeDbEntities();
var makale = (from m in provider.Makale
where m.YazarId == 1
select new { m.Tanim, m.Aciklama, m.Detay, m.Yazar.AdSoyad }).FirstOrDefault();
|
m isimli değişkenimiz Makale tablosunu temsil etmektedir. m.Yazar dediğimiz zaman Yazar tablosuna, kurduğumuz ilişki çerçevesinde gitmekte, makalenin yazar bilgisini getirmektedir.
Kısaca özetlemek gerekirse, tablolar arasında ilişkilerimizi ne kadar sağlıklı oluşturabilirsek kodlamamız sırasında bize o kadar kolaylık sağlayacaktır.
Veysel Uğur KIZMAZ
Bilgisayar Mühendisi