EF CORE 3.1 查询返回的数据大小是否有限制?
Is there a limit on the size of the data returned from EF CORE 3.1 queries?
我有一个建立在 EF CORE 3.1
上的 .NetCore 3.1
Web 应用程序连接到 SQL Server 2017
。
当我 运行 直接通过 SSMS 对数据库进行某个查询时,它 returns ~630000 条记录是正确的。
但是,当相同的查询通过 运行 通过 Web 应用程序通过
return await _MyDBContext.myDBSet.FromSqlRaw(query).ToListAsync();
它只有 returns 50479 条记录。此最大数量对于所有用例都是固定的。 (即,当我从对数据库的直接查询中获得约 61000 条记录时,EF Core 仍然 returns 50479 条记录。)当然,如果查询预计 return 小于 50479,我获取正确的记录数。
从 EF Core 查询中 return 的数据行数是否有限制? (或者对数据大小的限制?)如果是,我怎么能disable/change呢?
刚刚找到根本原因!这是 List 上的默认容量,用于保存
的输出
return _MyDBContext.myDBSet.FromSqlRaw(query).ToListAsync();
我将我的代码修改为:
List<MyRecordType> retList = new List<MyRecordType>(2000000);
retList = await _MyDBContext.myDBSet.FromSqlRaw(query).ToListAsync();
return retList;
它解决了问题!
我有一个建立在 EF CORE 3.1
上的 .NetCore 3.1
Web 应用程序连接到 SQL Server 2017
。
当我 运行 直接通过 SSMS 对数据库进行某个查询时,它 returns ~630000 条记录是正确的。
但是,当相同的查询通过 运行 通过 Web 应用程序通过
return await _MyDBContext.myDBSet.FromSqlRaw(query).ToListAsync();
它只有 returns 50479 条记录。此最大数量对于所有用例都是固定的。 (即,当我从对数据库的直接查询中获得约 61000 条记录时,EF Core 仍然 returns 50479 条记录。)当然,如果查询预计 return 小于 50479,我获取正确的记录数。
从 EF Core 查询中 return 的数据行数是否有限制? (或者对数据大小的限制?)如果是,我怎么能disable/change呢?
刚刚找到根本原因!这是 List 上的默认容量,用于保存
的输出 return _MyDBContext.myDBSet.FromSqlRaw(query).ToListAsync();
我将我的代码修改为:
List<MyRecordType> retList = new List<MyRecordType>(2000000);
retList = await _MyDBContext.myDBSet.FromSqlRaw(query).ToListAsync();
return retList;
它解决了问题!