Details
-
Bug
-
Resolution: Works as Designed
-
Unknown
-
None
-
None
-
None
-
None
Description
We have expression for find recodrs:
Expression<Func<Customer, bool>> SourceExpression => customer => customer.PhoneNumber == null; |
Also we have function for negation expressions
Expression<Func<T, bool>> NegationExpression =>
|
System.Linq.Expressions.Expression.Lambda<Func<T, bool>>(
|
System.Linq.Expressions.Expression.Not(SourceExpression.Body), SourceExpression.Parameters)
|
In method Find after applying NegationExpression for Source Expression driver throw next exception:
System.InvalidOperationException: x.PhoneNumber is not supported.System.InvalidOperationException
|
x.PhoneNumber is not supported.
|
at MongoDB.Driver.Linq.Translators.PredicateTranslator.GetFieldExpression(Expression expression)
|
at MongoDB.Driver.Linq.Translators.PredicateTranslator.TranslateComparison(Expression variableExpression, ExpressionType operatorType, ConstantExpression constantExpression)
|
at MongoDB.Driver.Linq.Translators.PredicateTranslator.TranslateComparison(BinaryExpression binaryExpression)
|
at MongoDB.Driver.Linq.Translators.PredicateTranslator.Translate(Expression node)
|
at MongoDB.Driver.Linq.Translators.PredicateTranslator.TranslateNot(UnaryExpression unaryExpression)
|
at MongoDB.Driver.Linq.Translators.PredicateTranslator.Translate(Expression node)
|
at MongoDB.Driver.Linq.Translators.PredicateTranslator.Translate(Expression node, IBsonSerializerRegistry serializerRegistry)
|
at MongoDB.Driver.Linq.Translators.PredicateTranslator.Translate[TDocument](Expression`1 predicate, IBsonSerializer`1 parameterSerializer, IBsonSerializerRegistry serializerRegistry) |
at MongoDB.Driver.ExpressionFilterDefinition`1.Render(IBsonSerializer`1 documentSerializer, IBsonSerializerRegistry serializerRegistry) |
at MongoDB.Driver.MongoCollectionImpl`1.CreateFindOperation[TProjection](FilterDefinition`1 filter, FindOptions`2 options) |
at MongoDB.Driver.MongoCollectionImpl`1.FindAsync[TProjection](IClientSessionHandle session, FilterDefinition`1 filter, FindOptions`2 options, CancellationToken cancellationToken) |
at MongoDB.Driver.MongoCollectionImpl`1.<>c__DisplayClass47_0`1.<FindAsync>b__0(IClientSessionHandle session) |
at MongoDB.Driver.MongoCollectionImpl`1.UsingImplicitSessionAsync[TResult](Func`2 funcAsync, CancellationToken cancellationToken) |
at MongoDB.Driver.IAsyncCursorSourceExtensions.ToListAsync[TDocument](IAsyncCursorSource`1 source, CancellationToken cancellationToken) |