我有一個模型類,有許多使用NHibernate映射到數據庫的屬性。是否有任何捷徑來建模我的NHibernate映射模型類的輕量級版本?
如果我想創建一個重量更輕的版本,僅用於檢索和更新性質的一個同班的是那裏的NHibernate提供任何捷徑或者我只需要創建一個新的類新的NHibernate映射文件只是爲了我感興趣的一個屬性?
我想這樣做的原因是數據庫性能,我不想每次檢索10條數據時我知道我只是要更新一個特定的列。
我有一個模型類,有許多使用NHibernate映射到數據庫的屬性。是否有任何捷徑來建模我的NHibernate映射模型類的輕量級版本?
如果我想創建一個重量更輕的版本,僅用於檢索和更新性質的一個同班的是那裏的NHibernate提供任何捷徑或者我只需要創建一個新的類新的NHibernate映射文件只是爲了我感興趣的一個屬性?
我想這樣做的原因是數據庫性能,我不想每次檢索10條數據時我知道我只是要更新一個特定的列。
謝謝大家,最後我們已經創建了我們的模型類的削減版本,我們的dba的滿意。
這沒有任何捷徑。你必須用它自己的映射映射單獨的類。但是你可能會把車推到馬前。 NHibernate有很多內置的性能調優功能,其中最重要的就是第一級和第二級緩存,它可以緩解您正在嘗試解決的大部分問題。假設你正在使用延遲加載功能,更新實體上的單個屬性在NHibernate中是相當便宜的事務。
使用HQL:
session.CreateQuery("update TheEntity set TheProp = :newValue where id = :id")
.SetParameter("newValue", theValue)
.SetParameter("id", id)
.ExecuteUpdate();
無需黑客。
填充完整對象而不是一個屬性的性能命中(幾乎在所有情況下)可忽略不存在。不要擔心。
感謝James,我們遇到了對我們DBA使用NH的抵制,這是他們提出的問題之一。 – 2011-02-02 08:34:03
謝謝,我更關心的是,我會做的首先填充模型類。 – 2011-02-01 17:51:16