【发布时间】:2021-10-02 08:48:16
【问题描述】:
考虑以下方法:
public IEnumerable<Owner> GetOwners(OwnerParameters ownerParameters)
{
return FindAll()
.OrderBy(on => on.Name)
.Skip((ownerParameters.PageNumber - 1) * ownerParameters.PageSize)
.Take(ownerParameters.PageSize)
.ToList();
}
其中FindAll() 是返回IQueryable<Owner> 的存储库模式方法。在.Skip() 和.Take() 方法之前有.OrderBy() 是否意味着Owner 数据表中的所有元素都将被检索和排序,或者Linq 是否考虑到.Skip() 和.Take() 方法可能会缩小删除所需的Owner 元素,只有在检索到这些元素后才会进行排序?
编辑:分析器日志:
SELECT XXX
FROM [Owners] AS [a]
ORDER BY [a].[Name]
OFFSET @__p_0 ROWS FETCH NEXT @__p_1 ROWS ONLY',N'@__p_0 int,@__p_1 int',@__p_0=0,@__p_1=10
【问题讨论】:
-
对于因“需要更多细节或清晰度”而投票决定关闭此内容的人,您的意思究竟是什么?
标签: c# linq entity-framework-core