6

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?

4

1 に答える 1

6

文字列で演算子Equalsの代わりにメソッドを使用してみてください。==

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