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:
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.
BookStoreContext Sınıfı: Bu sınıf, veritabanı işlemlerini yönetir. DbSet'ler, veritabanında oluşturulacak tabloları temsil eder.
OnConfiguring Metodu: Bu metot, veritabanı bağlantı ayarlarını belirler. Örnekte SQL Server kullanıldı, bu nedenle bir SQL Server bağlantı dizesi ekledik.
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.