Using special property names in Dynamic LINQ

183 Views Asked by At

I'm constructing a Dynamic LINQ query like this:

"Guid=Guid(\"" + entityId + "\")"

This is eventually passed into a .Where() query, somewhere in the code that I call.

I'm getting this error:

ParseException: '.' or '(' expected

This seems to be because it doesn't find the Guid property, but rather the Guid function.

How can I query on the Guid property of my object?

2

There are 2 best solutions below

0
On BEST ANSWER

Guid is indeed a keyword. You can escape keyword identifiers by prefixing them with @.

The correct expression looks like this:

"@Guid=Guid(\"" + entityId + "\")"
0
On

Just to tidy up Kendall's answer I think the more elegant approach is to let Dynamic LINQ handle the type conversions by using parameterized queries.

myIqueryable1.Where("@Guid=@0", entityId)