C# ile Sayfalama
📚 C# ile Sayfalama (Pagination) Nasıl Yapılır?
Sayfalama (pagination), veritabanından gelen büyük miktarda veriyi sayfalara bölerek kullanıcıya sunma işlemidir. Bu yöntem, uygulamaların performansını artırır ve kullanıcı deneyimini geliştirir. Bu makalede, C# kullanarak sayfalama işlemini adım adım anlatacağız.
🚀 Sayfalama Nedir ve Neden Önemlidir?
Sayfalama, büyük miktarda veriyi tek seferde yükleyip kullanıcıyı yormak yerine, belirli bir sayfa numarasına göre veriyi bölerek yüklemektir. Böylece veritabanına yapılan sorgular daha verimli hale gelir ve kullanıcılar aradıkları içeriğe kolayca ulaşır. Özellikle e-ticaret siteleri, bloglar ve raporlama uygulamalarında sıkça kullanılır.
📌 C# ile Basit Sayfalama Örneği
Örneğimizde Entity Framework kullanacağız. Temel mantık aşağıdaki gibidir:
Kullanıcı sayfa numarasını ve sayfa başına kaç kayıt istediğini belirler.
Belirtilen sayfa numarasına göre veriler atlanır (skip) ve alınır (take).
Sonuçlar ekranda listelenir.
📍 Entity Framework Kullanarak Sayfalama
İlk önce, NuGet üzerinden Entity Framework paketini kurduğunuzdan emin olun:
1 | Install-Package EntityFramework |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | using System; using System.Linq; using System.Collections.Generic; namespace SayfalamaOrnek { public class Program { public static void Main(string[] args) { int sayfaNumarasi = 2; // İstenen sayfa numarası int sayfaBoyutu = 5; // Her sayfada gösterilecek kayıt sayısı using (var context = new UrunContext()) { var veriler = context.Urunler .OrderBy(u => u.Id) .Skip((sayfaNumarasi - 1) * sayfaBoyutu) .Take(sayfaBoyutu) .ToList(); foreach (var urun in veriler) { Console.WriteLine($"{urun.Id} - {urun.Ad}"); } } } } // Örnek entity sınıfı public class Urun { public int Id { get; set; } public string Ad { get; set; } } // Örnek DbContext sınıfı using System.Data.Entity; public class UrunContext : DbContext { public DbSet<Urun> Urunler { get; set; } } } |
📍 Kod Açıklaması:
sayfaNumarasi: Görüntülenmek istenen sayfanın numarasını belirtir.sayfaBoyutu: Her sayfada kaç kayıt olacağını belirler.Skip(): Önceki sayfaların verilerini atlar.Take(): Belirtilen sayıda kayıt alır.
⚙️ Performans İçin İpuçları
Sayfalama yaparken dikkat edilmesi gereken bazı performans önerileri şunlardır:
Mutlaka indeks kullanın: Sıralama yaptığınız alanlara indeks ekleyin.
Büyük veri setlerinde: Her zaman limitli (
Take) sorgular kullanın.Lazy Loading kullanımına dikkat edin: Gereksiz yüklemeleri engelleyin.
🚩 C# ile Gelişmiş Sayfalama Teknikleri
Daha ileri düzey kullanımda, toplam kayıt sayısını hesaplayıp kaç sayfa olduğunu göstermek isteyebilirsiniz. Bunun için aşağıdaki örneği kullanabilirsiniz:
1 2 3 4 | int toplamKayit = context.Urunler.Count(); int toplamSayfa = (int)Math.Ceiling(toplamKayit / (double)sayfaBoyutu); Console.WriteLine($"Toplam Sayfa Sayısı: {toplamSayfa}"); |
Bu kod, toplam kayıt sayısına göre kaç sayfa olduğunu hesaplayarak kullanıcılara daha iyi bir navigasyon sağlar.
🔖 Sonuç ve Tavsiyeler
C# ile sayfalama yapmak, kullanıcı dostu uygulamalar geliştirmek için önemlidir. Bu sayede uygulamalarınız daha hızlı, kullanıcı dostu ve profesyonel olacaktır. Örneklerimizi kendi projelerinizde deneyebilir ve performansı artırabilirsiniz.
