Bu yazımızda ise Code First yapısıyla tablolar arasında Foreign Key ilişkisi kurmayı inceleyeceğiz.
- Gençay Yıldız
- 07 Mayıs 2019
- 1227 kez görüntülendi.
Bu yazımızda ise Code First yapısıyla tablolar arasında Foreign Key ilişkisi kurmayı inceleyeceğiz.
Örneklendirmemi bir okul senaryosu üzerine kuracağım. Okul veritabanı oluşturacak, içerisinde öğretmen ve derslere özel tablolar barındıracağım. İşte gerekli yerlerde senaryoyu düzenleyip ekleme çıkarma yaparsak nedenini yazının akışından yakalayacaksınızdır.
Öncelikle öğretmenler ve derslere özel Entity’lerimizi oluşturalım. Bu entityler veritabanımızda tablo görevi görecek sınıflardır.
class Ogretmen { public int OgretmenID { get; set; } public string Adi { get; set; } public string SoyAdi { get; set; } } class Ders { public int DersID { get; set; } public string DersAdi { get; set; } }
Gördüğünüz gibi öğretmen ve ders tablolarımı nitelendiren sınıfları oluşturmuş oldum.
Şimdi bu tablolar arasında ilişkiyi şu mantıkla kuracağız.
Her öğretmenin bir dersi mevcuttur lakin her dersin birden fazla öğretmeni olabilir.
Olaya bu mantık açısından bakınca öğretmenleri aşağıdaki gibi güncellemeliyiz.
class Ogretmen { public int OgretmenID { get; set; } public string Adi { get; set; } public string SoyAdi { get; set; } public int DersID { get; set; } public virtual Ders Ders { get; set; } }
Gördüğünüz gibi her öğretmenin bir dersi mevcut olduğundan dolayı Ders tipinde bir Ders propertysi, int tipinde de DersID propertysi ekledim.
Aynı mantıkla dersleride aşağıdaki gibi güncellemeliyiz.
class Ders { public int DersID { get; set; } public string DersAdi { get; set; } public virtual List<Ogretmen> Ogretmenler { get; set; } }
Madem her bir dersin birden fazla öğretmeni olabilir, bir öğretmenler tipinde liste şeklinde property tuttum.
Şimdi bu yaptığım işlemlerle server arasında bağlantıyı oluşturacak Context’timizi yazalım.
class OkulDbContext : DbContext { public DbSet<Ogretmen> Ogretmenler { get; set; } public DbSet<Ders> Dersler { get; set; } }
Ardından veritabanı oluşturması için server bilgilerimizi config dosyasında oluşturalım.
<connectionStrings> <add name="OkulDbContext" connectionString="Server=.;Database=OkulVeriTabani;Trusted_Connection=true;" providerName="System.Data.SqlClient"/> </connectionStrings>
Ve son olarak Context sınıfımızdan bir nesne oluşturup, gerekli veritabanı ve tablolarımızı oluşturalım.
class Program { static void Main(string[] args) { OkulDbContext Veri = new OkulDbContext(); Veri.Database.Create(); } }
SQL Server’ı incelersek eğer,
Gördüğünüz gibi veritabanı ve tablolarımız oluşturulmuştur. Bunların yanında tabloların arasındaki ilişkide aşikardır.
Diyagramdan da incelemek gerekirse,
Gördüğünüz gibi tablolar arasında bu şekilde ilişki kurulmaktadır.
Gençay Yıldız ın tüm makalelerine bu linkten ulaşabilirsiniz.
Bu yazıya 0 yorum yapılmış.