转换实体框架.Take()操作结束查询



当前,当从上下文获取集合时,我们在DataRepository中执行分页操作。这意味着我们从上下文中获得的查询已经具有。跳过((和。Take((调用已应用。然后,控制器执行业务逻辑或过滤操作,而不必担心分页。

问题是,当你这样做的时候。后面的Where((语句。Take((语句,您只是在Page上进行筛选,而不是在Operation之前对整个Table进行筛选。有没有办法我可以打电话。跳过((和。Take(或我可以使用的另一个方法(来指定这些操作应该在对Query求值时最后发生,即使。哪里还没有进行调用,或者我必须重构它才能进行调用。跳过((和。在所有其他操作之后Take((?

调用Where和Take方法的不同顺序意味着不同的数据集。您可能需要一种新的方法来接受筛选并在跳过并接受之前调用Where

public static IQueryable<T> PaginationAfterWhere<T>(this IQueryable<T> queryable, Func<T, bool> where, int skip, int take)
{
return queryable.Where(x => where(x)).Skip(skip).Take(take);
}

相关内容

  • 没有找到相关文章

最新更新