unión dinámica en linq 0 c #

   var query = from C in db.clients
    join O in db.orders on c.clientid equals O.clientid
    join P in db.products on O.productid equals P.productid
    select new {C,O};

Quiero realizar una búsqueda basada en la anterior. El parámetro de entrada podría ser

C.ClientID y / o P.ProductName y / o P.ProductType y / o O.ShippingType

¿Cómo construir una cláusula de búsqueda dinámica?

Respuestas a la pregunta(2)

Su respuesta a la pregunta