Cláusula where dinâmica no Linq to Entities
Estou usando linq para entidades (EF). Eu tenho um construtor que leva 4 parâmetros de seqüência de caracteres. Dependendo do parâmetro que não é nulo, tenho que criar a consulta linq. Eu posso fazer com as instruções if else, mas também tenho outro construtor com 10 parâmetros; nesse caso, haverá muitas combinações para verifica
Exemplo
Constructor(p1,p2,p3,p4)
{
var prod= from p in ctxt.products.expand("items\details")
where p.x==p1 && p.xx==p2 && p.xxx==p3 && p.xxxx==p4
select p;
}
Na cláusula where acima, deve haver verificações de condição apenas se o parâmetro não for nulo. ou seja, se p2 for nulo, a cláusula where deve se parecer com
where p.x==p1 && p.xxx==p3 && p.xxxx==p4
se p2 e p3 forem nulos então
where p.x==p1 && p.xxxx==p4
Alguém pode me dizer como lidar com isso. se possível, você pode dar um exemplo de código para este