EF Core kullanarak, ilişkisel bir veritabanı tasarlayabilir ve modelleme yapabilirsiniz. Model tasarımı, ilişkisel tabloların ve sütunların tanımlanmasını içerir. 1-M ilişkisini kurmak için, iki tablo oluşturmanız gerekebilir ve bunların birincisi ana tablo, ikincisi ise alt tablo olarak tasarlanabilir
Örneğin, bir Kitaplık uygulaması geliştiriyorsanız, bir Kategori tablosu ve bir Kitap tablosu oluşturabilirsiniz. Kitap tablosunda, Kategori tablosuna bir referans anahtarı ekleyebilirsiniz. Bu şekilde, bir kategoriye birden fazla kitap eklenebilir
Veri listeleme işleminde ise, EF Core’un sorgu işlevlerini kullanabilirsiniz. İlişkisel tablolardan veri listelemek için, JOIN işlevini kullanabilirsin
Aşağıdaki kod örneği, EF Core ile ilişkisel veritabanı kullanarak 1-M ilişkisini kurmanızı ve veri listeleme işlemlerini gerçekleştirmenizi sağlayabilir
public class Kategori
{
public int Id { get; set; }
public string Adi { get; set; }
public ICollection<Kitap> Kitaplar { get; set; }
}
public class Kitap
{
public int Id { get; set; }
public string Adi { get; set; }
public int KategoriId { get; set; }
public Kategori Kategori { get; set; }
}
public class MyDbContext : DbContext
{
public DbSet<Kategori> Kategoriler { get; set; }
public DbSet<Kitap> Kitaplar { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlite("Data Source=mydb.db");
}
}
// Veri Listeleme
using (var db = new MyDbContext())
{
var kategoriler = db.Kategoriler
.Include(k => k.Kitaplar)
.ToList();
foreach (var kategori in kategoriler)
{
Console.WriteLine($"Kategori Adı: {kategori.Adi}");
foreach (var kitap in kategori.Kitaplar)
{
Console.WriteLine($"\tKitap Adı: {kitap.Adi}");
}