gpt4 book ai didi

c# - Take() 方法如何工作?

转载 作者:太空狗 更新时间:2023-10-29 18:15:59 26 4
gpt4 key购买 nike

我在网络应用程序中查询的表有点大,我只想从表中返回 N 行。

我已经通读了 MSDN 文档,但我看不到它在哪里说明 Take() 首先从数据库中提取所有记录,或者它的行为是否类似于 SQL Server 的顶部

我担心 Take() 是否会提取所有记录,然后然后获取前 N 条记录,或者它会表现如何正如预期的那样,直接只检索 N 条记录

最佳答案

参见 Return Or Skip Elements in a Sequence .

Take(N) 会将 TOP N 添加到您的 SQL 中,并且只检索 N 条记录。

例如(使用我自己的 SQL Server 2014 和 EF 6.1):

这个 LINQ:

var query = await dbContext.Lookup
.Where(w => w.LookupCd == '1')
.Take(10)
.ToListAsync();

生成此 SQL:

SELECT TOP (10) 
[Extent1].[LookupId] AS [LookupId],
[Extent1].[LookupTypeId] AS [LookupTypeId],
[Extent1].[LookupCd] AS [LookupCd],
[Extent1].[LookupName] AS [LookupName],
[Extent1].[LookupDescription] AS [LookupDescription]
FROM [dbo].[Lookup] AS [Extent1]
WHERE '1' = [Extent1].[LookupCd]

如果您想确定 LINQ 生成的 SQL,请使用 SQL Profiler(如果您使用的是 SQL Server)。对于您编写的任何 LINQ,这始终是一个很好的做法。

SQL Profiler

关于c# - Take() 方法如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30990816/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com