相关疑难解决方法(0)

使用Contains()时达到2100参数限制(SQL Server)

from f in CUSTOMERS
where depts.Contains(f.DEPT_ID)
select f.NAME
Run Code Online (Sandbox Code Playgroud)

deptsIEnumerable<int>部门ID 的列表()

这个查询工作正常,直到你传递一个大的列表(比如大约3000 dept ids)..然后我得到这个错误:

传入的表格数据流(TDS)远程过程调用(RPC)协议流不正确.此RPC请求中提供的参数太多.最高为2100.

我将查询更改为:

var dept_ids = string.Join(" ", depts.ToStringArray());
from f in CUSTOMERS
where dept_ids.IndexOf(Convert.ToString(f.DEPT_id)) != -1
select f.NAME
Run Code Online (Sandbox Code Playgroud)

使用IndexOf()修复错误但使查询变慢.有没有其他方法可以解决这个问题?非常感谢.

linq sql-server parameters limit

57
推荐指数
2
解决办法
6万
查看次数

使用ADO.Net传递表值参数

如何使用ADO.Net将表值参数传递给存储过程?

c# sql asp.net ado.net

46
推荐指数
2
解决办法
3万
查看次数

在LINQ to SQL中避免2100参数限制

在我正在进行的项目中,我需要以下列方式访问LINQ中的2个数据库:

  1. 我得到了DB1指定日期范围之间所有旅行号码的列表,并将其存储为"长"值列表

  2. 我在DB2上执行了大量连接的大量查询,但只查看了上面列表中包含其行程编号的行程.

问题是,来自DB1的行程列表经常返回超过2100项 - 我当然在SQL中达到2100参数限制,这导致我的第二个查询失败.我一直在寻找解决这个问题的方法,例如此处所描述的,但是这实际上将我的查询更改为LINQ-to-Objects,这会导致我的连接出现很多问题

我还能做其他解决方法吗?

.net c# linq linq-to-sql

7
推荐指数
1
解决办法
5044
查看次数

标签 统计

c# ×2

linq ×2

.net ×1

ado.net ×1

asp.net ×1

limit ×1

linq-to-sql ×1

parameters ×1

sql ×1

sql-server ×1