Eu tenho uma função onde obtenho uma lista de ids e preciso retornar a uma lista que corresponda a uma descrição associada ao id. Por exemplo:
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
}
Portanto, se eu estivesse criando o sql para isso, simplesmente faria algo como o seguinte (em que a cláusula in contém todos os valores no argumento codeIds):
Select CodeId, Description FROM CodeTable WHERE CodeId IN ('1a','2b','3')
No Linq to Sql, não consigo encontrar o equivalente da cláusula "IN". O melhor que encontrei até agora (que não funciona) é:
var foo = from codeData in channel.AsQueryable<CodeData>()
where codeData.CodeId == "1" || codeData.CodeId == "2"
select codeData;
O problema é que não consigo gerar dinamicamente uma lista de cláusulas "OR" de linq para sql, porque elas são definidas em tempo de compilação.
Como alguém realiza uma cláusula where que verifica se uma coluna está em uma lista dinâmica de valores usando Linq to Sql?