NHibernate关系与查询性能

时间:2014-09-19 08:30:35

标签: c# nhibernate

我遇到以下情况:

  • 我有一个包含大量关系的大型数据库模型

现在我的问题是,我想在映射中生成关​​系,因为这会简化我的插入和更新逻辑。但是如果我在映射中有关系,那么我会遇到性能问题。这对我来说是合乎逻辑的,因为加载的数据太多了。

现在我正在寻找一种解决这个问题的方法。 是否可以在不加载数据的情况下指定关系映射,或者在查询中确定加载关系。 NHibernate有没有办法实现这个目标?

我无法延迟加载关系,因为DataAccess是通过WCF调用的,因此会话被关闭。

1 个答案:

答案 0 :(得分:0)

逻辑上,如果要获取大量数据,则应使用查询(可能是查询,HQL或Linq),然后使用自定义DTO将数据传递回服务。

当您更新大部分时间更新有限数量的数据时,您可以获取要更新的实体设置相关字段并提交事务。在涉及大型列表(例如搜索屏幕)时,通过服务发送实体并不是一个好主意,而是将其映射到简单的DTO,并在屏幕上显示确切的信息并将其发回。