protected override Expression Build(Expression left, Expression right)
        {
            if (left.Type == typeof(string) || right.Type == typeof(string))
            {
                return(base.Build
                       (
                           LinqHelpers.GetStringCompareCall(left.SetNullType(typeof(string)), right.SetNullType(typeof(string))),
                           Expression.Constant(0)
                       ));
            }

            if (left.Type.ToNullableUnderlyingType() == typeof(Guid) || right.Type.ToNullableUnderlyingType() == typeof(Guid))
            {
                return(base.Build
                       (
                           LinqHelpers.GetGuidCopareCall(left.SetNullType(typeof(Guid)), right.SetNullType(typeof(Guid))),
                           Expression.Constant(0)
                       ));
            }

            return(base.Build(left, right));
        }