【发布时间】:2019-06-17 11:24:13
【问题描述】:
我有问题。我想让我的应用程序更快。我的问题是:
_context.Products.Where(m => m.Name.Contains(part)).Take(20);
我不想拿走整个收藏品,我只想拿走其中的一部分。我想取元素,直到我有足够的元素满足我的条件,并且我不会遍历我的整个集合来得到我的结果。我可以使用标准 LINQ 和 EF Core 方法来实现吗?
【问题讨论】:
-
你试过了吗?我相信
.Take(20)LINQ 的一部分将转换为LIMIT 20SQL 语句。 -
大部分是的。在您调用 ToList 或开始对此集合进行交互之前,所有 LINQ 和 EF 方法都将转换为 SQL。请阅读 IQueryable 接口。例如上面的代码将被转换为 SELECT TOP 20 * FROM Products WHERE
-
@Wokuo,那么,上下文它就像一个请求的构建器?
-
@ВиталийЗаярний,不,这就像构建查询
-
@Виталий Заярний 简化是的,它是某种查询构建器
标签: c# .net linq .net-core entity-framework-core