运算符'=='与操作数类型'Guid'和'Guid'不兼容使用DynamicExpression.ParseLambda <t,bool =“”> </t,>

时间:2013-05-09 16:33:24

标签: c# linq dynamic dynamic-linq

我正在使用 Dynamic Linq library并且有 Source code and basic docu和Nuget版本

PM&GT;安装包DynamicLINQ

我正在尝试构建一个涉及Guids的where子句

我尝试过使用字符串"Id == @0"。 参数数组只是object[],其值为Guid xxxx

  var whereClauseSB = BuildLogicalKeyWhereClause2(entity, logicalKey);  //build string
  var parms = BuildParamArray(entity, logicalKey); // object[]
  var whereLambda = Ofsi.Bos.Core.DynamicExpression.ParseLambda<T, bool>(whereClauseSB.ToString(),parms);  //parse

DynamicExpression.ParseLambda

中抛出异常
  

运算符'=='与操作数类型'Guid'和'Guid'不兼容

  • 我也尝试过使用GUID和String。(失败)
  • 我试过并且“Id = @ 0”(失败)。
  • String == string的工作原理,Int32 == int32但不是Guid == Guid不

有什么想法吗?

1 个答案:

答案 0 :(得分:6)

尝试在字符串中使用Equals方法而不是==运算符:

"Id.Equals(@0)"