У меня есть функция, в которой я получаю список идентификаторов, и мне нужно вернуть список, соответствующий описанию, связанному с идентификатором. Например:
public class CodeData
{
string CodeId {get; set;}
string Description {get; set;}
}
public List<CodeData> GetCodeDescriptionList(List<string> codeIDs)
//Given the list of institution codes, return a list of CodeData
//having the given CodeIds
}
Поэтому, если бы я сам создавал sql для этого, я бы просто сделал что-то вроде следующего (где предложение in содержит все значения в аргументе codeIds):
Select CodeId, Description FROM CodeTable WHERE CodeId IN ('1a','2b','3')
В Linq to Sql я не могу найти эквивалент предложения «IN». Лучшее, что я нашел до сих пор (что не работает):
var foo = from codeData in channel.AsQueryable<CodeData>()
where codeData.CodeId == "1" || codeData.CodeId == "2"
select codeData;
Проблема в том, что я не могу динамически генерировать список предложений «ИЛИ» для linq to sql, потому что они устанавливаются во время компиляции.
Как выполнить предложение where, которое проверяет наличие столбца в динамическом списке значений с помощью Linq to Sql?