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?
Anonymous User
08-Apr-2019nice article click to use dynamic SQL Query
Sumit Kesarwani
22-Aug-2014You can try using .StartsWith || .EndsWith || .Contains