Misalnya, saya ingin mengisi kontrol gridview di halaman web ASP.NET hanya dengan data yang diperlukan untuk # baris yang ditampilkan. Bagaimana NHibernate dapat mendukung ini?
.net
nhibernate
orm
pagination
sinar
sumber
sumber
Anda juga dapat memanfaatkan fitur Futures di NHibernate untuk mengeksekusi kueri untuk mendapatkan jumlah catatan total serta hasil aktual dalam satu kueri.
Contoh
Untuk mendapatkan jumlah catatan total, Anda melakukan hal berikut:
Diskusi yang bagus tentang apa yang Futures berikan untuk Anda ada di sini .
sumber
Dari NHibernate 3 ke atas, Anda dapat menggunakan
QueryOver<T>
:Anda mungkin juga ingin mengurutkan hasil secara eksplisit seperti ini:
sumber
.Skip(PageNumber * PageSize)
dengan cara ini, jika ukuran halaman 10, 10 baris pertama tidak akan pernah diambil. Saya mengedit untuk membuat rumusnya benar. Dengan asumsi bahwa secara konseptual,PageNumber
seharusnya tidak 0. Ini harus minimum 1.Ketika paging data apakah ada cara lain untuk mendapatkan hasil yang diketik dari MultiKriteria atau semua orang melakukan hal yang sama seperti saya?
Terima kasih
sumber
Bagaimana jika menggunakan Linq ke NHibernate seperti yang dibahas dalam posting blog ini oleh Ayende?
Contoh Kode:
Dan berikut adalah posting rinci oleh blog tim NHibernate tentang Akses Data Dengan NHibernate termasuk menerapkan paging.
sumber
Kemungkinan besar dalam GridView Anda akan ingin menampilkan sepotong data ditambah jumlah baris (jumlah baris) dari jumlah total data yang cocok dengan kueri Anda.
Anda harus menggunakan MultiQuery untuk mengirim kueri Select count (*) dan .SetFirstResult (n) .SetMaxResult (m) ke database Anda dalam satu panggilan.
Perhatikan hasilnya akan menjadi daftar yang menampung 2 daftar, satu untuk potongan data dan satu untuk hitungan.
Contoh:
sumber
Saya menyarankan agar Anda membuat struktur khusus untuk menangani penomoran halaman. Sesuatu seperti (Saya seorang programmer Java, tetapi itu seharusnya mudah dipetakan):
Saya tidak menyediakan implementasi, tetapi Anda dapat menggunakan metode yang disarankan oleh @Jon . Berikut adalah pembahasan yang bagus untuk Anda lihat.
sumber
Anda tidak perlu menentukan 2 kriteria, Anda dapat menentukan satu dan mengkloningnya. Untuk mengkloning kriteria nHibernate, Anda dapat menggunakan kode sederhana:
sumber