Seperti yang dikatakan @Ladislav, EF 5 tidak mendukung OFFSET &FETCH. Dengan itu, saya ingin menambahkan sedikit perspektif. Saya rasa itu tidak terlalu penting.
Saat Anda membeli ORM seperti Entity Framework, Anda mengeluarkan sumber pembuatan kueri Anda (untuk alasan yang sangat valid). Apakah EF menggunakan CTE
'lama' kueri gaya dengan Row_Number()
atau Fetch
. yang lebih baru / Offset
merupakan detail implementasi. Microsoft dapat memperbarui kode EF kapan saja dan mengubah pembuatan kueri untuk menggunakan satu atau yang lain.
Jika Anda ingin mengontrol pembuatan kueri, Anda dapat:
- Gunakan kemampuan 'pemetaan prosedur tersimpan' EF
- Gunakan prosedur tersimpan secara langsung dengan EF (sesuatu yang cukup sering saya lakukan)
- tulis sendiri ADO/SQLnya, atau
- gunakan micro-orm yang lebih terbatas seperti masif/PetaPoco
Jadi, apakah itu penting?
Nah, untuk pengembang yang menulis kueri, sintaks baru akan sangat melegakan. Di sisi lain, itu tidak muncul bahwa ada perbedaan kinerja yang nyata antara metode CTE lama dan sintaks baru. Jadi dari sudut pandang EF -- tidak juga. Kami dikenakan overhead yang signifikan menggunakan EF, metode paging mungkin tidak akan menjadi break point Anda.