Soru & Cevap

Xamarin SQLite ile İlişkisel Veritabanı Tabloları Kullanımı

04.06.2020 - 08:24

Merhabalar, 

Xamarin ile basit bir uygulama geliştirmeye çalışıyorum. Sadece ekleme ve listeleme özelliklerini kullanacağım. Xamarin ile CRUD işlemlerini gerçekleştirebiliyorum ancak ilişkisel bir veritabanıyla çalışamıyorum. 1-M ilişkisini kullanmam gerekiyor tablolarımın durumuna göre. Xamarin üzerinden bu ilişkiyi nasıl kurabileceğim ve veri listlerken tabloları nasıl bağlayabileceğim konusunda bilgi sahibiyseniz yardımcı olursanız çok sevinirim. 

Şimdiden Teşekkür Ederim.

Herkese İyi Çalışmalar Dilerim.

73 Görüntülenme

1 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

Profile picture for user f.erenyucal
f.erenyucal
16.02.2023 - 09:23

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}");
        }