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

Chr*_*ris 7 .net c# linq linq-to-sql

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

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

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

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

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

Ian*_*ose 5

因为LINQ-to-SQL可以调用存储过程,你可以

  • 有一个存储过程,它将一个数组作为输入,然后将值放在临时表中以进行连接
  • 同样通过获取存储过程分裂的字符串

或者自己将所有值上传到临时表并加入该表.

不过,也许您应该重新考虑这个问题:

  • 可以将Sql server配置为允许查询其他数据库(包括oracle)中的表,如果允许,这可能是您的选项.
  • 您是否可以使用某些复制系统来保持DB2中的行程编号表更新?