gpt4 book ai didi

c# - 传入请求的参数过多。服务器最多支持2100个参数

转载 作者:可可西里 更新时间:2023-11-01 03:08:38 25 4
gpt4 key购买 nike

我有一个看似简单的 linq-to-sql 查询,它在多个列中搜索一些数据;像这样:

List<long> TheTableIDs = list of IDs (sometimes more than 2100)

var QueryOutput = (from x in TheDataContext.SomeTable

where TheTableIDs.Contains(x.ID) &&

x.Col1.Contains(SomeString) ||
x.Col2.Contains(SomeString))

select x.ID).ToList();

我得到的错误是这样的:

Additional information: The incoming request has too many parameters.The server supports a maximum of 2100 parameters. Reduce the number ofparameters and resend the request.

解决这个问题的最佳方法是什么?

我环顾四周,发现的解决方案如下所示:

var QueryOutput = TheDataContext.SomeTable.AsEnumerable()

.Join(TheTableIDs, x => x.LeadID, ci => ci, (x, ci) => x)

.Where(x => SomeString.Contains(x.Col1) == true ||
SomeString.Contains(x.Col2) == true)

.Select(x => x.ID).ToList();

这会编译并且不会抛出任何异常,但似乎忽略了带有 SomeString.ContainsWhere 子句

使该查询有效的解决方案是什么?

最佳答案

很简单 - 只要 TheTAbleID 包含的 ID 少于 2100 个 - 这样做是不合法的。

将表切成 2000 个 block ,然后分别查询每个 block ,可能在多个线程中。

关于c# - 传入请求的参数过多。服务器最多支持2100个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23045912/

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