我昨天試過這個問題,但我認爲我的措辭不是很清楚。將SQL語句轉換爲NHibernate查詢
因此,我試圖重新說明下面的問題。
我們有一個現有的系統,我們在MVC4中重寫,我們在我們的新系統中使用NHibernate 3.2。
在舊系統中,我們建立了一個類似的SQL語句:
SELECT myField as series,
pstatus,
Year(acc_date) AS year,
Month(acc_date) AS month,
COUNT(CAST(reportable AS INT)) AS totalreportable,
SUM(CAST(reportable AS INT)) AS riddorreportable,
SUM(CAST(lt_acc AS INT)) AS losttime,
SUM(CAST(acc_losttime AS INT)) AS totaldayslost,
SUM(CAST(nearmiss AS INT)) AS nearmiss
FROM incident
WHERE 1=1
在上面,我們將取代「WHERE 1 = 1」與NHibernate標準(我們已經有在系統過濾數據)。
上述SQL語句中的myField是可由用戶選擇的字段,例如,他可以選擇Department,City等。
因此,我需要的是如何使用nHibernate實現與上述SQL語句相同的結果的信息。
我把看看你以前問過的問題(http://stackoverflow.com/questions/13457735/nhibernate-group-by-and-order-by-with-dynamic-field-selection)試圖更好地瞭解你正在努力實現,但它仍然有點不清楚,因爲你提到where子句現在使用NHibernate Criteria引發了我的興趣。你是說你使用ICriteria查詢API來構建WHERE子句嗎?此外,當您聲明允許用戶選擇特定列時,該列是否也用於WHERE子句中或僅在SELECT中使用? –
嗨蘭迪 - 是的,我們正在建立一個新的系統,它必須模擬現有系統的功能。 WHERE子句可以包含選定的字段 - 從某種意義上說,WHERE子句的含義並不重要。新系統使用ICriteria查詢API來構建WHERE子句。 – Matt