2011-02-01 16 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

相关问题