Disclaimer: I\'ve solved the problem using Expressions from System.Linq.Expressions, but I\'m still looking for a better/easier way.
Consider the following situation :>
var query = from C in db.Customers select c;
if (seachFirstName)
query = query.Where(c=>c.ContactFirstname.Contains("Blacklisted"));
if (seachLastName)
query = query.Where(c=>c.ContactLastname.Contains("Blacklisted"));
if (seachAddress)
query = query.Where(c=>c.Address.Contains("Blacklisted"));
Note that they aren't mutually exclusive.