У меня есть функция, где я получаю список идентификаторов, и мне нужно вернуть список, соответствующий описанию, связанному с идентификатором. Например:.
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;
Проблема заключается в том, что я не могу динамически генерировать список "OR" для linq для sql, потому что они установлены во время компиляции.
Как выполнить условие where, которое проверяет столбец, находится в динамическом списке значений с использованием Linq to Sql?