Kendall Frey
Kendall Frey

Reputation: 44326

Using special property names in Dynamic LINQ

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?

Upvotes: 0

Views: 179

Answers (2)

Le-roy Staines
Le-roy Staines

Reputation: 2057

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)

Upvotes: 0

Kendall Frey
Kendall Frey

Reputation: 44326

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

The correct expression looks like this:

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

Upvotes: 1

Related Questions