2012-02-20 49 views
9

當從NHibernate查看我們的查詢時,很明顯,列別名不一致,當sql server執行計劃由於不一致的列別名而將同一查詢視爲不同查詢時,性能出現問題。NHibernate不一致的SQL列別名

一個例子可能是這樣的:

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

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

有什麼辦法可以讓一貫列的別名?

我們使用功能NHibernate具有自動映射

+3

顯示這種情況的代碼在哪裏? – 2012-02-20 15:33:32

+0

NHibernate在你所做的每個查詢中都使用了這些別名,所以你想看哪些代碼? – Lehto 2012-02-21 14:34:38

+0

導致這些SQL語句的兩個查詢。 – 2012-02-22 00:22:29

回答

0

我從來沒有見過同NH查詢在您的應用程序運行時生成不同的SQL。 我認爲你不需要爲此擔心表現。 (除了需要經常啓動和停止應用程序的情況)。

任何需要使SQL查詢始終保持一致所需的更改(即使在數據模型更改後)都是痛苦的,而不是絕對好的解決方案,而我認爲不適合你。