Линк к кв. RecordList должен быть List<T>
, а не ArrayList
или IList<T>
IEnumerable<TableRow> query =
from t in db.Table
where RecordList.Any(r => t.RecordId == r)
select t;
Это сгенерирует sql с параметрами:
SELECT *
FROM Table
WHERE RecordId in (@p0, @p1, @p2, @p3, @p4)
Linq сгенерирует столько параметров, сколько необходимо. Некоторые реализации базы данных ограничены числом параметров, которые могут быть приняты. Ограничение SqlServer2005 составляет немногим более 2000 параметров ... поэтому не используйте список, содержащий более 2000 элементов.