【发布时间】:2011-02-07 17:37:05
【问题描述】:
假设我想添加分页支持。 我的应用在 Web、服务和存储库中是分开的。
Controller 只与 Service 对话,Service 获取数据并执行业务逻辑。
说我想要分页支持.. 我的 ContributorService 中有这个方法
public IQueryable<Contributor> GetContributors(int page, int pageSize)
{
return _repository.GetAll().OrderBy(c=>c.ACC_CREATEDATE).Skip((page)*pageSize).Take(pageSize);//solo temporalmente
}
这样好吗??还是应该在存储库中完成 OrderBy、Skip、Take?
目前只做这个
public IQueryable<Contributor> GetAll()
{
return db.Contributors;
}
【问题讨论】:
-
无论哪种方式都没有区别,因为只有在 IQueryable 上调用“.ToList()”或访问集合中的第一个元素时才会执行查询。可以通过 LinqToSqlProfiler 确认。
标签: asp.net-mvc entity-framework-4 lazy-loading repository-pattern