Linq: ¿simular una expresión OrWhere al generar consultas LINQ dinámicamente?

El fragmento de código debajo de la búsqueda permite al usuario hacer coincidir una cadena con tres campos de la tabla. Si alguno de los campos coincide, la entrada se incluye en el resultado. Sin embargo, el uso de Dónde filtrar los resultados da como resultado "la cadena debe coincidir con los tres campos" en lugar de "la cadena puede coincidir con cualquiera de los tres campos".

¿Hay alguna manera de simular una expresión OrWhere al generar consultas LINQ dinámicamente?

var foundUsers = from UserInfo user in entities.UserInfo
                 select user;

if (searchCompleteName)
{
    foundUsers = foundUsers.Where(u => u.CompleteName.Contains(searchString));
}

if (searchPortalID)
{
     foundUsers = foundUsers.Where(u => u.PortalID.Contains(searchString));
}

if (searchUsername)
{
     foundUsers = foundUsers.Where(u => u.UserIdentity.Contains(searchString));
}

PD. Estoy usando Entities Framework y LINQ to Entities, y estoy haciendo una aplicación web MVC3.

Respuestas a la pregunta(2)

Su respuesta a la pregunta