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

phi*_*ady 5 c# linq dynamic dynamic-linq

我正在使用 Dynamic Linq库 , 有源代码和基本文档以及Nuget版本

PM> Install-Package 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
Run Code Online (Sandbox Code Playgroud)

DynamicExpression.ParseLambda中抛出异常

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

  • 我也试过GUID和String.(失败)
  • 我试过和"Id = @ 0"(失败).
  • String == string工作,Int32 == int32但不是Guid == Guid没有

有任何想法吗?

p.s*_*w.g 6

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

"Id.Equals(@0)"
Run Code Online (Sandbox Code Playgroud)