Bu yazımızda ise Code First yapısıyla tablolar arasında Foreign Key ilişkisi kurmayı inceleyeceğiz.

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,

Entity Framework - Code First İle Tabloları İlişkilendirme

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,

Entity Framework - Code First İle Tabloları İlişkilendirme

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. 

İlgili Makaleler

Bu yazıya 0 yorum yapılmış.

Yorum Gönder