2011-02-01 22 views
0

我有一個模型類,有許多使用NHibernate映射到數據庫的屬性。是否有任何捷徑來建模我的NHibernate映射模型類的輕量級版本?

如果我想創建一個重量更輕的版本,僅用於檢索和更新性質的一個同班的是那裏的NHibernate提供任何捷徑或者我只需要創建一個新的類新的NHibernate映射文件只是爲了我感興趣的一個屬性?

我想這樣做的原因是數據庫性能,我不想每次檢索10條數據時我知道我只是要更新一個特定的列。

回答

0

謝謝大家,最後我們已經創建了我們的模型類的削減版本,我們的dba的滿意。

1

這沒有任何捷徑。你必須用它自己的映射映射單獨的類。但是你可能會把車推到馬前。 NHibernate有很多內置的性能調優功能,其中最重要的就是第一級和第二級緩存,它可以緩解您正在嘗試解決的大部分問題。假設你正在使用延遲加載功能,更新實體上的單個屬性在NHibernate中是相當便宜的事務。

+0

謝謝,我更關心的是,我會做的首先填充模型類。 – 2011-02-01 17:51:16

2

使用HQL:

session.CreateQuery("update TheEntity set TheProp = :newValue where id = :id") 
     .SetParameter("newValue", theValue) 
     .SetParameter("id", id) 
     .ExecuteUpdate(); 

無需黑客。

1

填充完整對象而不是一個屬性的性能命中(幾乎在所有情況下)可忽略不存在。不要擔心。

+0

感謝James,我們遇到了對我們DBA使用NH的抵制,這是他們提出的問題之一。 – 2011-02-02 08:34:03

相關問題