2012-02-20 33 views
9

Khi nhìn vào truy vấn của chúng tôi từ NHibernate rõ ràng là bí danh cột không nhất quán, đó là một vấn đề cho hiệu suất khi máy chủ sql thực hiện kế hoạch nhìn thấy cùng một truy vấn như truy vấn khác nhau vì bí danh cột không phù hợp.NHibernate không phù hợp sql cột bí danh

Một ví dụ có thể là một cái gì đó như thế này:

SELECT this_.Id as Id44_0_ FROM dbo.[Foos] this_ 

SELECT this_.Id as Id43_0_ FROM dbo.[Foos] this_ 

Có cách nào chúng ta có thể làm cho bí danh cột phù hợp?

Chúng tôi đang sử dụng thành thạo NHibernate với bản đồ Auto

+3

Mã hiển thị điều này xảy ra ở đâu? –

+0

NHibernate sử dụng loại bí danh này với mỗi truy vấn bạn thực hiện, vì vậy bạn muốn xem mã nào? – Lehto

+0

Hai truy vấn dẫn đến các câu lệnh SQL đó. –

Trả lời

1

tùy ý bằng cách thiết lập chiếu bạn có thể có được một tên tùy chỉnh như một bí danh trong truy vấn như sau

Projections.Property("candidate.Name"), "CandidateName"); 

How to use NHibernate Projections to retrieve a collection

+0

Sau đó chúng tôi sẽ phải thay đổi hơn 80 lớp và không thể chấp nhận được nhưng cảm ơn. – Lehto

0

Tôi chưa bao giờ nhìn thấy cùng NH truy vấn để tạo ra SQL khác nhau trong khi ứng dụng của bạn đang chạy. Tôi nghĩ bạn không cần phải lo lắng về hiệu suất vì điều này. (Ngoại trừ trường hợp bạn cần bắt đầu và dừng ứng dụng thường xuyên.)

Bất kỳ thay đổi nào bạn cần làm cho truy vấn SQL nhất quán (ngay cả sau khi thay đổi mô hình dữ liệu) là những giải pháp tuyệt vời. nghĩ rằng không thể chấp nhận được cho bạn.

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