У мене є функція, де я отримую список ідентифікаторів, і мені потрібно повернути список, що відповідає опису, який асоціюється з ідентифікатором. Наприклад:
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 для цього, я просто зробив щось на кшталт наступного (де в пункті містяться всі значення аргументу 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, оскільки вони встановлюються під час компіляції.
Як можна виконати пункт де, який перевіряє стовпець, у динамічному списку значень, використовуючи Linq до Sql?