Rumah  >  Artikel  >  pembangunan bahagian belakang  >  C# | Amalan Terbaik untuk Penomboran menggunakan EF Core 8

C# | Amalan Terbaik untuk Penomboran menggunakan EF Core 8

WBOY
WBOYasal
2024-07-24 09:56:46460semak imbas

C# | Best Practices for Pagination using EF Core 8

Penomboran ialah aspek penting dalam pembangunan aplikasi, terutamanya apabila berurusan dengan set data yang besar. Rangka Kerja Entiti (EF) Teras 8 dalam C# menyediakan ciri berkuasa untuk melaksanakan penomboran yang cekap. Dalam panduan ini, kami akan meneroka amalan terbaik untuk melaksanakan penomboran menggunakan EF Core 8, bersama-sama dengan contoh.

1. Gunakan Langkau dan Ambil untuk Penomboran Mudah

EF Core menyediakan kaedah Langkau dan Ambil, yang penting untuk melaksanakan penomboran dengan cekap. Langkau membenarkan anda melangkau bilangan baris yang ditentukan, dan Ambil mengehadkan bilangan baris yang dikembalikan.

var pageNumber = 1;
var pageSize = 10;

var result = dbContext.YourEntity
    .OrderBy(e => e.SortingProperty)
    .Skip((pageNumber - 1) * pageSize)
    .Take(pageSize)
    .ToList();

Dalam contoh ini, pageNumber dan pageSize menentukan halaman semasa dan bilangan item setiap halaman, masing-masing.

2. Gunakan AsNoTracking untuk Operasi Baca Sahaja

Untuk operasi baca sahaja seperti mengambil data untuk tujuan paparan, pertimbangkan untuk menggunakan AsNoTracking untuk meningkatkan prestasi dengan mengelakkan overhed perubahan penjejakan.

var result = dbContext.YourEntity
    .AsNoTracking()
    .OrderBy(e => e.SortingProperty)
    .Skip((pageNumber - 1) * pageSize)
    .Take(pageSize)
    .ToList();

Ini amat berguna apabila anda tidak berniat untuk mengemas kini atau menyimpan perubahan pada entiti yang diambil.

3. Manfaatkan Lajur Berindeks untuk Isih

Pastikan lajur yang digunakan untuk pengisihan diindeks. Lajur diindeks meningkatkan prestasi operasi pengisihan dengan ketara.

// Ensure SortingProperty is indexed
modelBuilder.Entity<YourEntity>()
    .HasIndex(e => e.SortingProperty);

Lajur diindeks dengan cekap akan mempercepatkan pengisihan dan meningkatkan prestasi penomboran keseluruhan.

4. Gunakan Kiraan untuk Jumlah Kiraan Rekod

Untuk menentukan jumlah bilangan rekod tanpa mengambil semua data, gunakan Count sebelum menggunakan penomboran. Ini mengelakkan memuatkan data yang tidak diperlukan.

var totalRecords = dbContext.YourEntity.Count();
var result = dbContext.YourEntity
    .OrderBy(e => e.SortingProperty)
    .Skip((pageNumber - 1) * pageSize)
    .Take(pageSize)
    .ToList();

5. Kendalikan Pengubahsuaian Serentak dengan Ambil dan Langkau

Berhati-hati apabila menggunakan Langkau dan Ambil untuk penomboran dalam senario di mana data boleh diubah suai serentak. Dalam kes sedemikian, pertimbangkan untuk menggunakan kaedah alternatif seperti penomboran set kekunci untuk ketekalan yang lebih baik.

Apa Seterusnya?

Melaksanakan penomboran dengan cekap adalah penting untuk meningkatkan prestasi aplikasi yang berurusan dengan set data yang besar. Dengan mengikuti amalan terbaik ini, anda boleh memastikan logik penomboran anda dioptimumkan dan berskala apabila menggunakan EF Core 8 dalam C#.

Atas ialah kandungan terperinci C# | Amalan Terbaik untuk Penomboran menggunakan EF Core 8. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn