【发布时间】:2021-12-03 02:07:09
【问题描述】:
我有一个 linq 查询,它试图从数据库中获取大约 500K 记录。 我有一个 Count() 最终超时。
我想知道我的 linq 查询是否包含 5000 条或更多记录。我没有统计所有记录,只需要检查 linq 是否包含 5000 条记录。
有没有什么有效的方法可以在不调用 Count() 的情况下检查 linq 中是否有 5000 条或更多记录?我正在使用 EF 核心 3.1。
Linq 查询:
var results = (from a in RepoContext.Employee
join b in RepoContext.Program on a.ProgramId equals b.ProgramId
where a.ActiveFlag == true
&& b.ClientId == 2
select new RAManufacturerDto
{
BusinessName = a.BusinessName,
ClientId = a.ClientId.Value,
ClientName = b.ClientName
DCode = b.DCode,
StoreId = b.StoreId,
ProgramId = a.ProgramId
});
bool isRecordsLimitReached = results.Count() > 5000;
尝试对结果执行 Count() 时出现错误。我只想知道它是否包含超过 5000 条记录。
【问题讨论】:
-
如果您能提供一些上下文,这将是一个更好的问题。你能给我们看一些代码吗?
-
@sachin 请给我们看代码,没有看到是不可能的
-
@RobertHarvey 我编辑了我的问题。
-
@viveknuna 我编辑了我的问题。
-
如果您只需要计数,请不要选择列,只需执行
Count。您还可以在Count中添加条件来代替Where
标签: c# .net sql-server entity-framework-core-3.1