I have a search form that allows users to search on several different fields in several different ways. Here is an example of my code.
var claims = from c in db.
Have you tried dynamic LINQ? It allows you to build string-based query statements similar to a SQL WHERE clause.
http://weblogs.asp.net/scottgu/archive/2008/01/07/dynamic-linq-part-1-using-the-linq-dynamic-query-library.aspx