NHibernate + Paging + Ordering

Pau*_*ett 5 nhibernate pagination repository sql-order-by

我不太确定我想要做的最优雅的解决方案.

我有一个列出音乐列表的页面,可以有成千上万的这些,所以他们分批分页,我也有4个链接在页面的顶部,以改变这些列表的订购方式.

按属性排序可以位于不同的实体上,例如Audio.AudioStats.NumComments或Audio.Artist.NumProfileViews.

我正在使用存储库模式和服务层.我的控制器只能访问服务层,然后服务层访问我的存储库.

我可以相当容易地进行分页,我只需将当前页面传入,并将页面大小传递给我的数据层......但我如何安全地让用户决定我的实体的排序.

我正在使用S#arp Architecture 1.5.2,如果这有任何区别的话.

先感谢您.

nic*_*ckd 1

您必须以某种方式将用户的需求映射到 order by 子句。

想必您正在做类似的事情也skip(n).take(m)需要一个orderby()子句。

鉴于您有一组固定的(已知)可能性,您可以将它们映射到枚举或类似的,然后将其转换为相关orderby()调用。

这意味着您不会在 UI 层公开属性,而仅将意图传递到存储库层(作为Sortby.ArtistProfileViews值或其他形式)。该意图如何映射到域对象的属性在存储库层中是隔离的。