在Dynamic LINQ中使用特殊属性名称

时间:2013-12-10 14:37:31

标签: c# linq dynamic-linq

我正在构建一个动态LINQ查询,如下所示:

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

这最终会传递到我调用的代码中的某个.Where()查询中。

我收到了这个错误:

  

ParseException:'。'或'('预期

这似乎是因为它找不到Guid属性,而是Guid函数。

如何查询对象的Guid属性?

2 个答案:

答案 0 :(得分:1)

Guid确实是一个关键字。您可以通过为@添加前缀来转义关键字标识符。

正确的表达式如下:

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

答案 1 :(得分:0)

为了整理Kendall的答案,我认为更优雅的方法是让Dynamic LINQ使用参数化查询来处理类型转换。

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