gpt4 book ai didi

c# - 具有大型 .Any() 的 Entity Framework 6 中的 LINQ

转载 作者:太空狗 更新时间:2023-10-30 00:31:53 25 4
gpt4 key购买 nike

我有一个 EF6 查询,它采用 ID 列表并执行查询:

public IList<Audit> AuditsByIDs(List<int> ids)
{
return _db.Audits
.Include(p => p.User)
.Where(p => ids.Any(i => i == p.Id)).ToList();
}

它适用于少量 id,但当达到数百个时,我会收到错误消息:

Some part of your SQL statement is nested too deeply. Rewrite the query or break it up into smaller queries.

如何让查询只返回传入的 ids?我无法更改数据库:(

最佳答案

改用包含:

public IList<Audit> AuditsByIDs(List<int> ids)
{
return _db.Audits
.Include(p => p.User)
.Where(p => ids.Contains(p.Id)).ToList();
}

在生成的 SQL 查询中应将其转换为 IN

关于c# - 具有大型 .Any() 的 Entity Framework 6 中的 LINQ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21664977/

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