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

Elbette, Entity Framework Code First kullanarak tablolar arasında ilişki kurmak için bir örnek oluşturabilirim. Ancak, C# kodu üzerinden anlatım yapacağım, bu nedenle C# diline aşina olmanız gerekecek.

Elbette, Entity Framework Code First kullanarak tablolar arasında ilişki kurmak için bir örnek oluşturabilirim. Ancak, C# kodu üzerinden anlatım yapacağım, bu nedenle C# diline aşina olmanız gerekecek.

İlk olarak, Entity Framework ile çalışmak için gerekli olan NuGet paketlerini yükleyelim. Projemize NuGet Package Manager Console'dan şu komutları kullanarak Entity Framework'ü ekleyebiliriz:

Install-Package Microsoft.EntityFrameworkCore
Install-Package Microsoft.EntityFrameworkCore.SqlServer

Şimdi, bir örnek üzerinden ilerleyelim. Örneğimizde iki tablo olacak: Author ve Book. Bir yazarın birden çok kitabı olabilir, bu nedenle bu iki tablo arasında bir ilişki kuracağız.

using System;
using Microsoft.EntityFrameworkCore;

// Author model sınıfı
public class Author
{
    public int AuthorId { get; set; }
    public string Name { get; set; }

    // Yazarın kitapları için ilişki
    public virtual ICollection<Book> Books { get; set; }
}

// Book model sınıfı
public class Book
{
    public int BookId { get; set; }
    public string Title { get; set; }
    
    // Kitabın yazarı için ilişki
    public int AuthorId { get; set; }
    public virtual Author Author { get; set; }
}

// Veritabanı context sınıfı
public class BookStoreContext : DbContext
{
    public DbSet<Author> Authors { get; set; }
    public DbSet<Book> Books { get; set; }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        optionsBuilder.UseSqlServer("your_connection_string_here");
    }
}

class Program
{
    static void Main()
    {
        using (var context = new BookStoreContext())
        {
            // Veritabanını oluştur
            context.Database.EnsureCreated();

            // Örnek veri ekleyelim
            var author = new Author { Name = "John Doe" };
            var book = new Book { Title = "Sample Book", Author = author };

            context.Authors.Add(author);
            context.Books.Add(book);

            context.SaveChanges();
        }
    }
}

Açıklamalar:

  1. Author ve Book Sınıfları: Author ve Book sınıfları oluşturuldu. Author sınıfında Books property'si, bir yazarın birden çok kitabı olabileceğini belirtir. Book sınıfında ise Author property'si, kitabın hangi yazarla ilişkili olduğunu gösterir.

  2. BookStoreContext Sınıfı: Bu sınıf, veritabanı işlemlerini yönetir. DbSet'ler, veritabanında oluşturulacak tabloları temsil eder.

  3. OnConfiguring Metodu: Bu metot, veritabanı bağlantı ayarlarını belirler. Örnekte SQL Server kullanıldı, bu nedenle bir SQL Server bağlantı dizesi ekledik.

  4. Main Metodu: Örnek veri eklemek için kullanılır. Bir yazar ve bir kitap oluşturulup, ilişki kurularak veritabanına eklenir.

Bu örnekte, "Author" ve "Book" tabloları arasında bir ilişki kuruldu. Bir yazarın birden çok kitabı olabilir, bu nedenle "Author" tablosu ile "Book" tablosu arasında bir ilişki kuruldu.