Dynamic LINQ where query

Total Post:119


 1546  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?

  1. Re: Dynamic LINQ where query

    Hi Goti, 

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


Please check, If you want to make this post sponsored

You are not a Sponsored Member. Click Here to Subscribe the Membership.