2015-01-12 15 views
5

Chúng tôi có một ứng dụng đang chạy trên NHibernate.3.3.3.4001.Trình điều khiển NHibernate và Phương ngữ Sql cho SQL Server 2014

Chúng tôi đã quyết định nâng cấp từ SQL Server 2008 R2 để SQL Server 2014.

Trước đây, chúng tôi đã có sau khi cấu hình thông thạo:

var databaseConfiguration = MsSqlConfiguration.MsSql2008.ConnectionString(connectionString) 
      .Dialect<MsSql2008Dialect>(); 

databaseConfiguration = databaseConfiguration.Driver<Sql2008ClientDriver>(); 

Tôi đã thử nghiệm rằng việc áp dụng hoạt động tốt với điều này cấu hình khi tôi kết nối với một cá thể của cơ sở dữ liệu SQL Server 2014.

  1. Tôi có thể sử dụng trình điều khiển và phương ngữ 2008 trong khi kết nối với cơ sở dữ liệu 2014?

  2. Có bất kỳ biến chứng nào có thể phát sinh trong tương lai mà tôi đang xem không?

  3. Có hỗ trợ cho trình điều khiển và phương ngữ năm 2014 trong phiên bản cao hơn của NHibernate không?

+0

Vấn đề là cú pháp làm việc trong SQL 2008 vẫn được hỗ trợ trong năm 2008+. Trừ khi điều đó sẽ thay đổi ... nó sẽ hoạt động. Nhưng chắc chắn bạn không sử dụng các tính năng mới nhất. Ví dụ. Phương ngữ 2012 có tốt hơn (dễ đọc hơn) phân trang tại chỗ ... vì vậy, hãy thử nâng cấp NH của bạn lên 4.0+ - chỉ có lợi ích và không quá nhiều vấn đề ... –

+0

câu trả lời ngắn: MsSql2008Dialect là một tập hợp con của phương ngữ năm 2012 – Firo

Trả lời

7

Các tính năng sau tùy thuộc vào phương ngữ được sử dụng.

  • Phân trang, thay vì sử dụng SKIP/TAKE-Feature MSSQL 2012 trở lên, phân trang sẽ được truy vấn bằng truy vấn con tạo ra số cho tất cả các hàng được trả lại. Đây là một dự phòng không thực hiện cách tính năng gốc thực hiện.
  • Trình tự, MSSQL 2012 trở lên hiện có cùng tính năng mà Oracle có. Bạn có thể tạo một chuỗi có tên tạo ra các số gia tăng. Điều này được sử dụng bởi các bộ tạo "Enhanced" của NHibernate để tạo ra một PK cho các hàng được chèn vào.

Câu hỏi # 1: Vì MSSQL 2008 có ít tính năng hơn và MSSQL 2012 chỉ thêm tính năng mới, trình điều khiển cũ hơn có thể được sử dụng.

Câu hỏi # 2: Bạn mất một số phép tối ưu hóa mà tôi đã mô tả ở trên.

Câu hỏi # 3: NHibernate 4.0 bổ sung MSSQL 2012, hiện không có phương ngữ cho MSSQL 2014 tồn tại. Điều này chắc chắn không phải là một vấn đề lớn vì nhiều tính năng MSSQL 2014 không liên quan/minh bạch cho OR-Mapper.

Các vấn đề liên quan