protected override Expression VisitBinary(BinaryExpression expression) { if (expression.Type == typeof(bool) && expression.NodeType == ExpressionType.NotEqual) { var binaryExpression = expression.As <BinaryExpression>(); var locator = _mapping.JsonLocator(binaryExpression.Left); if (binaryExpression.Right.NodeType == ExpressionType.Constant && binaryExpression.Right.As <ConstantExpression>().Value == null) { var @where = new WhereFragment($"({locator}) IS NULL"); _callback(@where); return(base.VisitBinary(expression)); } } var parser = _supplementalParsers.OfType <IExpressionParser <BinaryExpression> >()?.FirstOrDefault(x => x.Matches(expression)); if (parser != null) { var where = parser.Parse(_mapping, _serializer, expression); _callback(where); return(expression); } return(base.VisitBinary(expression)); }
protected override Expression VisitMember(MemberExpression expression) { if (expression.Type == typeof(bool)) { var locator = _mapping.JsonLocator(expression); var @where = new WhereFragment($"{locator} = False"); _callback(@where); } return(base.VisitMember(expression)); }
protected override Expression VisitMember(MemberExpression expression) { if (expression.Type == typeof (bool)) { var locator = _mapping.JsonLocator(expression); var @where = new WhereFragment($"{locator} = False"); _callback(@where); } return base.VisitMember(expression); }
protected override Expression VisitMember(MemberExpression expression) { if (expression.Type == typeof(bool)) { var locator = _mapping.JsonLocator(expression); var where = new WhereFragment("{0} = True".ToFormat(locator), true); _register.Peek()(where); return(null); } return(base.VisitMember(expression)); }
protected override Expression VisitBinary(BinaryExpression expression) { if (expression.Type == typeof(bool) && expression.NodeType == ExpressionType.NotEqual) { var binaryExpression = expression.As <BinaryExpression>(); var locator = _mapping.JsonLocator(binaryExpression.Left); if (binaryExpression.Right.NodeType == ExpressionType.Constant && binaryExpression.Right.As <ConstantExpression>().Value == null) { var @where = new WhereFragment($"({locator}) IS NULL"); _callback(@where); } } return(base.VisitBinary(expression)); }
protected override Expression VisitBinary(BinaryExpression expression) { if (expression.Type == typeof (bool) && expression.NodeType == ExpressionType.NotEqual) { var binaryExpression = expression.As<BinaryExpression>(); var locator = _mapping.JsonLocator(binaryExpression.Left); if (binaryExpression.Right.NodeType == ExpressionType.Constant && binaryExpression.Right.As<ConstantExpression>().Value == null) { var @where = new WhereFragment($"({locator}) IS NULL"); _callback(@where); } } return base.VisitBinary(expression); }
protected override Expression VisitMember(MemberExpression expression) { if (expression.Type == typeof(bool)) { var locator = _mapping.JsonLocator(expression); var where = new WhereFragment("{0} = True".ToFormat(locator), true); _register.Peek()(where); return null; } return base.VisitMember(expression); }