Home > DeveloperSection > Forums > Dynamic LINQ where query
Goti Bandu

Total Post:119

Posted on    August-22-2014 12:50 AM

 C# C# 

 1 Reply(s)
 659  View(s)
Rate this:

I'm using dynamic LINQ to create a query from given columns the user selects for a given search.

var counter = 0;

var predicate = string.Empty;

foreach(var field in selectedFields)


    predicate += field + ".Contains(@" + counter + ") ||";

    // logical OR, without it the SQL generates AND


predicate = predicate.Remove(predicate.LastIndexOf("||", 2));

query = query.Where(predicate, searchvalues);

This code generates the given SQL query

(([t0].[Field1] LIKE 'searchstring') OR ([t0].[Field2] LIKE 'searchstring'))

Which is correct, albeit what i want to do is be able to use wildcards, when i try to enter let's say, a percent character, the SQL generated is

(([t0].[field1] LIKE 'searchstring' ESCAPE '~') OR ([t0].[field2] LIKE 'searchstring' ESCAPE '~'))

Is there a way to use wildcards in the searchstring while using dynamic L2S?

Sumit Kesarwani

Total Post:378

Posted on    August-22-2014 1:52 AM

Hi Goti, 

You can try using .StartsWith || .EndsWith || .Contains

Don't want to miss updates? Please click the below button!

Follow MindStick