我正在构建一个动态LINQ查询,如下所示:
"Guid=Guid(\"" + entityId + "\")"
这最终会传递到我调用的代码中的某个.Where()
查询中。
我收到了这个错误:
ParseException:'。'或'('预期
这似乎是因为它找不到Guid
属性,而是Guid
函数。
如何查询对象的Guid
属性?
答案 0 :(得分:1)
Guid
确实是一个关键字。您可以通过为@
添加前缀来转义关键字标识符。
正确的表达式如下:
"@Guid=Guid(\"" + entityId + "\")"
答案 1 :(得分:0)
为了整理Kendall的答案,我认为更优雅的方法是让Dynamic LINQ使用参数化查询来处理类型转换。
myIqueryable1.Where("@Guid=@0", entityId)