When we query using dynamic linq it is tough to execute statements that contain LIKE keyword. LIKE statements in the StringBuilder (which is input to the LINQ quey as a parameter to the WHERE clause) always gave me errors.
But there is an easy solution provided by LINQKit which can be downloaded from http://www.albahari.com/nutshell/linqkit.aspx.
After referring it from the project you can implement a query with ‘Contains’ as described below
1: var cusPred = PredicateBuilder.True<CustomerEntity>();
2: if (!String.IsNullOrEmpty(cust.Name))
3: cusPred = cusPred.And(s => s.FirstName.Contains(cust.Name)
then the PredicateBuilder can be input to the linq query as given below
1: IQueryable<Customer> query = (from c in db.CustomerEntities.Where(cusPred)
2: join p in db.PolicyEntities on c.CustomerID equals p.CustomerID
3: join u in db.UserEntities on p.SOCode equals u.SOCode
4: join us in db.UsersInStructureEntities.Where(str.ToString())
5: on u.UserId equals us.UserId
6: select new Customer
7: {
8: CustomerId = c.CustomerID,
9: FirstName = c.FirstName
10: }).Distinct();
11: