Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Entity Framework và SQL Server 2012 Paging

Như @Ladislav đã nói, EF 5 không hỗ trợ OFFSET &FETCH. Với điều đó đã nói, tôi muốn thêm một chút quan điểm. Tôi nghĩ nó không quan trọng lắm.

Khi bạn mua ORM như Entity Framework, bạn đang tìm nguồn tạo truy vấn của mình (vì những lý do hoàn toàn hợp lệ). EF có sử dụng CTE 'cũ hơn' hay không truy vấn kiểu với Row_Number() hoặc Fetch mới hơn / Offset là một chi tiết thực hiện. Microsoft có thể cập nhật mã EF tại bất kỳ thời điểm nào và thay đổi cách tạo truy vấn để sử dụng mã này hoặc mã khác.

Nếu bạn muốn kiểm soát việc tạo truy vấn, bạn có thể:

  • Sử dụng khả năng 'lập bản đồ thủ tục được lưu trữ' của EF
  • Sử dụng các thủ tục được lưu trữ trực tiếp với EF (điều mà tôi thường làm)
  • tự viết ADO / SQL hoặc
  • sử dụng một tổ chức vi mô hạn chế hơn như lớn / PetaPoco

Vậy nó có quan trọng không?

Chà, đối với một nhà phát triển viết truy vấn, cú pháp mới sẽ là một giải pháp đáng hoan nghênh. Mặt khác, nó không xuất hiện rằng có sự khác biệt về hiệu suất thực sự giữa phương thức CTE cũ và cú pháp mới. Vì vậy, từ quan điểm của EF - không thực sự. Chúng tôi phải chịu chi phí đáng kể sử dụng EF, phương pháp phân trang có thể sẽ không phải là điểm dừng của bạn.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Lưu byte [] vào cơ sở dữ liệu SQL Server từ C #

  2. EF4 - Thủ tục được lưu trữ đã chọn trả về không có cột nào

  3. nhận ID bản ghi SQL mới

  4. Theo dõi tuổi thọ trang trong SQL Server

  5. Gửi SMS bằng cách sử dụng trình kích hoạt và quy trình được lưu trữ từ SQL Server 2008