当使用 NHibernate 和延迟加载时,我将如何获得这种行为:
我有一个客户类,客户有很多地址(假设 100 更有意义)。
我加载我的客户行,我只想访问地址集合中的 3 个项目。
我不希望 nHibernate 加载所有 100 个地址,但根据我的理解,延迟加载会加载所有地址吗?
我只想要其中的 3 个,并且我想一次加载所有 3 个,我将如何获得这种行为?
请您参考如下方法:
这取决于
- 如果您需要“仅一个”或某个特定的
- 如果您稍后在同一 session 中需要列表中的其他项目
你可以使用
- filters过滤集合。这些过滤器在映射文件中定义,并在使用 session 时激活和参数化
- AliasToEntityMap result transformer这使您可以在查询中过滤集合
- batch fetching一次获取一定数量的元素。