Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Operator '==' incompatible with operand types 'Guid' and 'Guid' using DynamicExpression.ParseLambda<T, bool>

I'm Using Dynamic Linq library and there is Source code and basic docu and the Nuget version

PM> Install-Package DynamicLINQ

I'm trying to construct a where clause that involves Guids

I have tried with the string "Id == @0". The parameter array is just an object[] with the value (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

an exception is thrown in DynamicExpression.ParseLambda

Operator '==' incompatible with operand types 'Guid' and 'Guid'

  • I have also tried with GUID and String.(fail)
  • I tried with and "Id = @0" (fail).
  • String == string works, as does Int32==int32 but not Guid == Guid does not

Any ideas?

like image 391
phil soady Avatar asked May 09 '13 16:05

phil soady


1 Answers

Try using the Equals method instead of the == operator in your string:

"Id.Equals(@0)"
like image 128
p.s.w.g Avatar answered Oct 14 '22 11:10

p.s.w.g