Clé Dynamic where dans Linq to Entities

Je suis en utilisant linq to entities(EF).
J'ai un constructeur qui prend 4 paramètres de la chaîne. En fonction de ce paramètre n'est pas null-je construire la requête linq. Je peux le faire avec si else mais je possède également d'autres constructeur avec 10 paramètres dans ce cas, il y aura de nombreuses combinaisons pour vérifier.

Exemple:

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;
}

Dans le ci-dessus où la clause devrait être la condition vérifie uniquement si le paramètre n'est pas null.
c'est à dire.,
si p2 est null, alors la clause where devrait ressembler à

where p.x==p1 && p.xxx==p3 && p.xxxx==p4

si p2 et p3 sont nulles alors

where p.x==p1 && p.xxxx==p4

Quelqu'un peut me dire comment gérer cela. si possible, pouvez-vous donner un exemple de code pour cette

source d'informationauteur Deepak