我試圖讓什麼似乎是與SQL服務器功能NHibernate的高級使用。
我使用NHibernate的ICriteria接口爲我的列表視圖提供分頁,排序和過濾。 業務對象之一是來自3個不同表的項目的聚合。 爲了做到這一點在數據庫中聚合我已經使用了一個transact-sql函數,接受參數。
我使用由session.GetNamedQuery返回的IQuery接口來調用該函數。但爲了使用分頁/過濾/排序代碼,我想使用ICriteria接口。 從而實現了,我認爲:與NHibernate使用臨時表
- 打開一個新的事務
- 調用,這將創建一個全局臨時表的功能(而不是返回象現在這樣的結果)
- 在某種程度上改變了NHibernate的所以它適用於臨時表(不知道我能做到這一點,也必須具體到我創建交易的範圍內......)
- 使用新映射在新表上運行查詢,使用新映射ICriteria接口
- 刪除t他臨時表
等等一系列的問題:
- 你能提出替代?
- 是否有可能在運行時替換NHibernate映射中的表,在本地爲特定的代碼範圍?
- 生成和處理臨時表會花多少錢?
我不能提出一種替代的時候,我不知道在哪裏,表示建議爲替代。什麼是類,什麼是表?使用臨時表來描述你所描述的內容聽起來很奇怪,但也許在你使用它的上下文中是合乎邏輯的? – Paco 2010-01-17 13:22:19
我同意Paco,我沒有看到臨時表的需要.. – 2010-01-17 15:33:20