Поскольку EF 3.5 не поддерживает параметры сбора в методе .Contain (), я видел, как многие люди предлагали использовать пользовательские выражения для решения этой проблемы (http://social.msdn.microsoft.com/forums/en-US/adodotnetentityframework/thread/095745fe-dcf0-4142-b684-b7e4a1ab59f0).
Однако, если у меня есть длинный список идентификаторов для фильтрации сгенерированного SQL, в этом случае содержится бесконечный список OR. Например,
WHERE (99999 = [Extent1].[ID]) OR (99998 = [Extent1].[ID]) OR (99997 = [Extent1].[ID]) OR...
Этот сгенерированный SQL выполняется на моем компьютере вечно, но как только я заменяю OR на «истинное» предложение IN:
WHERE [Extent1].[ID] IN (99999,99998,99997...)
это завершается менее чем за секунду.
У меня вопрос: что я могу сделать, чтобы LINQ генерировал «истинное» предложение IN вместо OR?