6

我正在使用 动态 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

DynamicExpression.ParseLambda 中抛出异常

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

  • 我也尝试过使用 GUID 和字符串。(失败)
  • 我尝试了“Id = @0”(失败)。
  • String == string 有效,Int32==int32 也有效,但 Guid 无效 == Guid 无效

有任何想法吗?

4

1 回答 1

6

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

"Id.Equals(@0)"
于 2013-05-09T16:37:50.143 回答