1
CastleProject ActiveRecord是否支持分页?我只需要加载现在在屏幕上看到的数据。如果我使用[HasMany],它将作为一个整体立即或在第一次调用时加载(如果lazy属性为true)。不过,我只需要像前100条记录(然后可能是100条下一条记录)。在ActiveRecord中寻呼
另一个问题是如何只加载100个项目。如果集合太大,如果我们不断加载越来越多的项目,内存可能会达到极限。
CastleProject ActiveRecord是否支持分页?我只需要加载现在在屏幕上看到的数据。如果我使用[HasMany],它将作为一个整体立即或在第一次调用时加载(如果lazy属性为true)。不过,我只需要像前100条记录(然后可能是100条下一条记录)。在ActiveRecord中寻呼
另一个问题是如何只加载100个项目。如果集合太大,如果我们不断加载越来越多的项目,内存可能会达到极限。
是的,Castle ActiveRecord支持分页。除了NHibernate's API for paging,您可以使用SlicedFindAll()
,如:
Post[] posts = Post.SlicedFindAll(10, 20);
其中10是第一个结果指标和20个页面大小(它会返回20 Post
秒的阵列)
您也可以定义标准,例如获取后的第一个100篇评论:
Post post = ...
Comment[] comments = Comment.SlicedFindAll(0, 100, Restrictions.Eq("Post", post));
也可以在“页的”使用batch fetching(对应于HasManyAttribute的BatchSize属性)集合,但此批大小是固定的,所以它不像普通的分页方式那么灵活。
谢谢Mauricio。你能否澄清一下,如果这可以被整合到标记。我的意思是,如果我使用HasMany属性,我如何防止从数据库加载所有收集内容? – Alex 2010-06-01 04:13:35
我不明白'markup'是什么意思。 HTML? – 2010-06-01 04:34:23
我添加了一些关于批量抓取的信息,但我已经概述了普通的分页,包括集合分页。 – 2010-06-01 04:35:25