0

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?

Kendall Frey
  • 43,130
  • 20
  • 110
  • 148

2 Answers2

1

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

The correct expression looks like this:

"@Guid=Guid(\"" + entityId + "\")"
Kendall Frey
  • 43,130
  • 20
  • 110
  • 148
0

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)
Le-roy Staines
  • 2,037
  • 2
  • 22
  • 40