Atingir o limite de 2100 parâmetros (SQL Server) ao usar Contains ()

from f in CUSTOMERS
where depts.Contains(f.DEPT_ID)
select f.NAME

depts é uma lista IEnumerable<int>) dos IDs de departamento

Esta consulta funciona bem até você passar uma lista grande (digamos cerca de 3000 IDs de departamento) .. então eu recebo este erro:

O fluxo do protocolo RPC (Chamada de Procedimento Remoto) do fluxo de dados tabulares de entrada (TDS) está incorreto. Muitos parâmetros foram fornecidos nesta solicitação de RPC. O máximo é 2100.

Alterei minha consulta para:

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

usingIndexOf() corrigiu o erro, mas tornou a consulta lenta. Existe alguma outra maneira de resolver isso? Muito obrigado

questionAnswers(5)

yourAnswerToTheQuestion