czu*_*ski 10 nhibernate pagination eager-loading
我正在创建一个使用nhibernate和paging的mvc应用程序.我有一个父>子关系,我试图加载我的孩子记录.这一切都很好.
我遇到的问题是分页.我想每页有15个项目.如果每个父母只有一个孩子,这种方法很有效.问题是父母有多于一个孩子.例如,如果父级有2个子记录,则数据库实际上选择15个记录,其中两个代表同一个父级,一个用于两个子级中的每一个.因此,在我的页面数据视图中,似乎只有14条记录.
有没有人知道如何在父母仍然渴望加载我的孩子实体的情况下如何通过父母获取我的页面数量?
这将是一个面向公众的网站,所以我认为延迟加载不是一个好主意,因为它会导致太多的服务器访问.
是否有内置于NHibernate中的内容可能会解决这个问题,我错过了?
谢谢你的任何想法.
您需要在查询中使用不同的根实体结果转换器。您还没有说明您使用的是 HQL 还是 Criteria,但两者的 API 是相似的。
// criteria
criteria.SetResultTransformer(Transformers.DistinctRootEntity)
Run Code Online (Sandbox Code Playgroud)
这将强制结果集仅包含不同的父实体。
| 归档时间: |
|
| 查看次数: |
903 次 |
| 最近记录: |