[CSHARP-1002] AsQueryable System.InvalidOperationException Created: 23/Jun/14  Updated: 07/Feb/17  Resolved: 07/Feb/17

Status: Closed
Project: C# Driver
Component/s: Linq
Affects Version/s: None
Fix Version/s: None

Type: Bug Priority: Major - P3
Reporter: Peter Garafano (Inactive) Assignee: Robert Stam
Resolution: Done Votes: 7
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends

 Description   

It appears to be a bug inside the interpretation of AsQueryable. The inner-most InnerException is

The binary operator Equal is not defined for the types 'System.Boolean' and 'System.Nullable`1[System.Boolean]'.

The full stack trace is below.

<Error>
<Message>An error has occurred.</Message>
<ExceptionMessage>
The 'ObjectContent`1' type failed to serialize the response body for content type 'application/xml; charset=utf-8'.
</ExceptionMessage>
<ExceptionType>System.InvalidOperationException</ExceptionType>
<StackTrace/>
<InnerException>
<Message>An error has occurred.</Message>
<ExceptionMessage>
The binary operator Equal is not defined for the types 'System.Boolean' and 'System.Nullable`1[System.Boolean]'.
</ExceptionMessage>
<ExceptionType>System.InvalidOperationException</ExceptionType>
<StackTrace>
at System.Linq.Expressions.Expression.GetEqualityComparisonOperator(ExpressionType binaryType, String opName, Expression left, Expression right, Boolean liftToNull)
at System.Linq.Expressions.Expression.Equal(Expression left, Expression right, Boolean liftToNull, MethodInfo method)
at System.Linq.Expressions.Expression.MakeBinary(ExpressionType binaryType, Expression left, Expression right, Boolean liftToNull, MethodInfo method, LambdaExpression conversion)
at System.Linq.Expressions.Expression.MakeBinary(ExpressionType binaryType, Expression left, Expression right, Boolean liftToNull, MethodInfo method)
at MongoDB.Driver.Linq.ExpressionVisitor.VisitBinary(BinaryExpression node) in C:\Users\Admin\GitHub\mongo-csharp-driver\src\MongoDB.Driver\Linq\Expressions\ExpressionVisitor.cs:line 163
at MongoDB.Driver.Linq.ExpressionNormalizer.VisitBinary(BinaryExpression node) in C:\Users\Admin\GitHub\mongo-csharp-driver\src\MongoDB.Driver\Linq\Expressions\ExpressionNormalizer.cs:line 148
at MongoDB.Driver.Linq.ExpressionVisitor.Visit(Expression node) in C:\Users\Admin\GitHub\mongo-csharp-driver\src\MongoDB.Driver\Linq\Expressions\ExpressionVisitor.cs:line 82
at MongoDB.Driver.Linq.ExpressionVisitor.VisitLambda(LambdaExpression node) in C:\Users\Admin\GitHub\mongo-csharp-driver\src\MongoDB.Driver\Linq\Expressions\ExpressionVisitor.cs:line 273
at MongoDB.Driver.Linq.ExpressionVisitor.Visit(Expression node) in C:\Users\Admin\GitHub\mongo-csharp-driver\src\MongoDB.Driver\Linq\Expressions\ExpressionVisitor.cs:line 96
at MongoDB.Driver.Linq.ExpressionVisitor.VisitUnary(UnaryExpression node) in C:\Users\Admin\GitHub\mongo-csharp-driver\src\MongoDB.Driver\Linq\Expressions\ExpressionVisitor.cs:line 520
at MongoDB.Driver.Linq.ExpressionNormalizer.VisitUnary(UnaryExpression node) in C:\Users\Admin\GitHub\mongo-csharp-driver\src\MongoDB.Driver\Linq\Expressions\ExpressionNormalizer.cs:line 158
at MongoDB.Driver.Linq.ExpressionVisitor.Visit(Expression node) in C:\Users\Admin\GitHub\mongo-csharp-driver\src\MongoDB.Driver\Linq\Expressions\ExpressionVisitor.cs:line 58
at MongoDB.Driver.Linq.ExpressionVisitor.Visit(ReadOnlyCollection`1 nodes) in C:\Users\Admin\GitHub\mongo-csharp-driver\src\MongoDB.Driver\Linq\Expressions\ExpressionVisitor.cs:line 123
at MongoDB.Driver.Linq.ExpressionVisitor.VisitMethodCall(MethodCallExpression node) in C:\Users\Admin\GitHub\mongo-csharp-driver\src\MongoDB.Driver\Linq\Expressions\ExpressionVisitor.cs:line 436
at MongoDB.Driver.Linq.ExpressionVisitor.Visit(Expression node) in C:\Users\Admin\GitHub\mongo-csharp-driver\src\MongoDB.Driver\Linq\Expressions\ExpressionVisitor.cs:line 94
at MongoDB.Driver.Linq.ExpressionVisitor.Visit(ReadOnlyCollection`1 nodes) in C:\Users\Admin\GitHub\mongo-csharp-driver\src\MongoDB.Driver\Linq\Expressions\ExpressionVisitor.cs:line 123
at MongoDB.Driver.Linq.ExpressionVisitor.VisitMethodCall(MethodCallExpression node) in C:\Users\Admin\GitHub\mongo-csharp-driver\src\MongoDB.Driver\Linq\Expressions\ExpressionVisitor.cs:line 436
at MongoDB.Driver.Linq.ExpressionVisitor.Visit(Expression node) in C:\Users\Admin\GitHub\mongo-csharp-driver\src\MongoDB.Driver\Linq\Expressions\ExpressionVisitor.cs:line 94
at MongoDB.Driver.Linq.ExpressionVisitor.Visit(ReadOnlyCollection`1 nodes) in C:\Users\Admin\GitHub\mongo-csharp-driver\src\MongoDB.Driver\Linq\Expressions\ExpressionVisitor.cs:line 123
at MongoDB.Driver.Linq.ExpressionVisitor.VisitMethodCall(MethodCallExpression node) in C:\Users\Admin\GitHub\mongo-csharp-driver\src\MongoDB.Driver\Linq\Expressions\ExpressionVisitor.cs:line 436
at MongoDB.Driver.Linq.ExpressionVisitor.Visit(Expression node) in C:\Users\Admin\GitHub\mongo-csharp-driver\src\MongoDB.Driver\Linq\Expressions\ExpressionVisitor.cs:line 94
at MongoDB.Driver.Linq.ExpressionVisitor.Visit(ReadOnlyCollection`1 nodes) in C:\Users\Admin\GitHub\mongo-csharp-driver\src\MongoDB.Driver\Linq\Expressions\ExpressionVisitor.cs:line 123
at MongoDB.Driver.Linq.ExpressionVisitor.VisitMethodCall(MethodCallExpression node) in C:\Users\Admin\GitHub\mongo-csharp-driver\src\MongoDB.Driver\Linq\Expressions\ExpressionVisitor.cs:line 436
at MongoDB.Driver.Linq.ExpressionVisitor.Visit(Expression node) in C:\Users\Admin\GitHub\mongo-csharp-driver\src\MongoDB.Driver\Linq\Expressions\ExpressionVisitor.cs:line 94
at MongoDB.Driver.Linq.ExpressionVisitor.Visit(ReadOnlyCollection`1 nodes) in C:\Users\Admin\GitHub\mongo-csharp-driver\src\MongoDB.Driver\Linq\Expressions\ExpressionVisitor.cs:line 123
at MongoDB.Driver.Linq.ExpressionVisitor.VisitMethodCall(MethodCallExpression node) in C:\Users\Admin\GitHub\mongo-csharp-driver\src\MongoDB.Driver\Linq\Expressions\ExpressionVisitor.cs:line 436
at MongoDB.Driver.Linq.ExpressionVisitor.Visit(Expression node) in C:\Users\Admin\GitHub\mongo-csharp-driver\src\MongoDB.Driver\Linq\Expressions\ExpressionVisitor.cs:line 94
at MongoDB.Driver.Linq.ExpressionVisitor.Visit(ReadOnlyCollection`1 nodes) in C:\Users\Admin\GitHub\mongo-csharp-driver\src\MongoDB.Driver\Linq\Expressions\ExpressionVisitor.cs:line 123
at MongoDB.Driver.Linq.ExpressionVisitor.VisitMethodCall(MethodCallExpression node) in C:\Users\Admin\GitHub\mongo-csharp-driver\src\MongoDB.Driver\Linq\Expressions\ExpressionVisitor.cs:line 436
at MongoDB.Driver.Linq.ExpressionVisitor.Visit(Expression node) in C:\Users\Admin\GitHub\mongo-csharp-driver\src\MongoDB.Driver\Linq\Expressions\ExpressionVisitor.cs:line 94
at MongoDB.Driver.Linq.ExpressionVisitor.Visit(ReadOnlyCollection`1 nodes) in C:\Users\Admin\GitHub\mongo-csharp-driver\src\MongoDB.Driver\Linq\Expressions\ExpressionVisitor.cs:line 123
at MongoDB.Driver.Linq.ExpressionVisitor.VisitMethodCall(MethodCallExpression node) in C:\Users\Admin\GitHub\mongo-csharp-driver\src\MongoDB.Driver\Linq\Expressions\ExpressionVisitor.cs:line 436
at MongoDB.Driver.Linq.ExpressionVisitor.Visit(Expression node) in C:\Users\Admin\GitHub\mongo-csharp-driver\src\MongoDB.Driver\Linq\Expressions\ExpressionVisitor.cs:line 94
at MongoDB.Driver.Linq.ExpressionVisitor.Visit(ReadOnlyCollection`1 nodes) in C:\Users\Admin\GitHub\mongo-csharp-driver\src\MongoDB.Driver\Linq\Expressions\ExpressionVisitor.cs:line 123
at MongoDB.Driver.Linq.ExpressionVisitor.VisitMethodCall(MethodCallExpression node) in C:\Users\Admin\GitHub\mongo-csharp-driver\src\MongoDB.Driver\Linq\Expressions\ExpressionVisitor.cs:line 436
at MongoDB.Driver.Linq.ExpressionVisitor.Visit(Expression node) in C:\Users\Admin\GitHub\mongo-csharp-driver\src\MongoDB.Driver\Linq\Expressions\ExpressionVisitor.cs:line 94
at MongoDB.Driver.Linq.ExpressionVisitor.Visit(ReadOnlyCollection`1 nodes) in C:\Users\Admin\GitHub\mongo-csharp-driver\src\MongoDB.Driver\Linq\Expressions\ExpressionVisitor.cs:line 123
at MongoDB.Driver.Linq.ExpressionVisitor.VisitMethodCall(MethodCallExpression node) in C:\Users\Admin\GitHub\mongo-csharp-driver\src\MongoDB.Driver\Linq\Expressions\ExpressionVisitor.cs:line 436
at MongoDB.Driver.Linq.ExpressionVisitor.Visit(Expression node) in C:\Users\Admin\GitHub\mongo-csharp-driver\src\MongoDB.Driver\Linq\Expressions\ExpressionVisitor.cs:line 94
at MongoDB.Driver.Linq.ExpressionVisitor.Visit(ReadOnlyCollection`1 nodes) in C:\Users\Admin\GitHub\mongo-csharp-driver\src\MongoDB.Driver\Linq\Expressions\ExpressionVisitor.cs:line 123
at MongoDB.Driver.Linq.ExpressionVisitor.VisitMethodCall(MethodCallExpression node) in C:\Users\Admin\GitHub\mongo-csharp-driver\src\MongoDB.Driver\Linq\Expressions\ExpressionVisitor.cs:line 436
at MongoDB.Driver.Linq.ExpressionVisitor.Visit(Expression node) in C:\Users\Admin\GitHub\mongo-csharp-driver\src\MongoDB.Driver\Linq\Expressions\ExpressionVisitor.cs:line 94
at MongoDB.Driver.Linq.ExpressionVisitor.Visit(ReadOnlyCollection`1 nodes) in C:\Users\Admin\GitHub\mongo-csharp-driver\src\MongoDB.Driver\Linq\Expressions\ExpressionVisitor.cs:line 123
at MongoDB.Driver.Linq.ExpressionVisitor.VisitMethodCall(MethodCallExpression node) in C:\Users\Admin\GitHub\mongo-csharp-driver\src\MongoDB.Driver\Linq\Expressions\ExpressionVisitor.cs:line 436
at MongoDB.Driver.Linq.ExpressionVisitor.Visit(Expression node) in C:\Users\Admin\GitHub\mongo-csharp-driver\src\MongoDB.Driver\Linq\Expressions\ExpressionVisitor.cs:line 94
at MongoDB.Driver.Linq.ExpressionVisitor.Visit(ReadOnlyCollection`1 nodes) in C:\Users\Admin\GitHub\mongo-csharp-driver\src\MongoDB.Driver\Linq\Expressions\ExpressionVisitor.cs:line 123
at MongoDB.Driver.Linq.ExpressionVisitor.VisitMethodCall(MethodCallExpression node) in C:\Users\Admin\GitHub\mongo-csharp-driver\src\MongoDB.Driver\Linq\Expressions\ExpressionVisitor.cs:line 436
at MongoDB.Driver.Linq.ExpressionVisitor.Visit(Expression node) in C:\Users\Admin\GitHub\mongo-csharp-driver\src\MongoDB.Driver\Linq\Expressions\ExpressionVisitor.cs:line 94
at MongoDB.Driver.Linq.ExpressionVisitor.Visit(ReadOnlyCollection`1 nodes) in C:\Users\Admin\GitHub\mongo-csharp-driver\src\MongoDB.Driver\Linq\Expressions\ExpressionVisitor.cs:line 123
at MongoDB.Driver.Linq.ExpressionVisitor.VisitMethodCall(MethodCallExpression node) in C:\Users\Admin\GitHub\mongo-csharp-driver\src\MongoDB.Driver\Linq\Expressions\ExpressionVisitor.cs:line 436
at MongoDB.Driver.Linq.ExpressionVisitor.Visit(Expression node) in C:\Users\Admin\GitHub\mongo-csharp-driver\src\MongoDB.Driver\Linq\Expressions\ExpressionVisitor.cs:line 94
at MongoDB.Driver.Linq.ExpressionVisitor.Visit(ReadOnlyCollection`1 nodes) in C:\Users\Admin\GitHub\mongo-csharp-driver\src\MongoDB.Driver\Linq\Expressions\ExpressionVisitor.cs:line 123
at MongoDB.Driver.Linq.ExpressionVisitor.VisitMethodCall(MethodCallExpression node) in C:\Users\Admin\GitHub\mongo-csharp-driver\src\MongoDB.Driver\Linq\Expressions\ExpressionVisitor.cs:line 436
at MongoDB.Driver.Linq.ExpressionVisitor.Visit(Expression node) in C:\Users\Admin\GitHub\mongo-csharp-driver\src\MongoDB.Driver\Linq\Expressions\ExpressionVisitor.cs:line 94
at MongoDB.Driver.Linq.ExpressionVisitor.Visit(ReadOnlyCollection`1 nodes) in C:\Users\Admin\GitHub\mongo-csharp-driver\src\MongoDB.Driver\Linq\Expressions\ExpressionVisitor.cs:line 123
at MongoDB.Driver.Linq.ExpressionVisitor.VisitMethodCall(MethodCallExpression node) in C:\Users\Admin\GitHub\mongo-csharp-driver\src\MongoDB.Driver\Linq\Expressions\ExpressionVisitor.cs:line 436
at MongoDB.Driver.Linq.ExpressionVisitor.Visit(Expression node) in C:\Users\Admin\GitHub\mongo-csharp-driver\src\MongoDB.Driver\Linq\Expressions\ExpressionVisitor.cs:line 94
at MongoDB.Driver.Linq.ExpressionNormalizer.Normalize(Expression node) in C:\Users\Admin\GitHub\mongo-csharp-driver\src\MongoDB.Driver\Linq\Expressions\ExpressionNormalizer.cs:line 49
at MongoDB.Driver.Linq.MongoQueryTranslator.Translate(MongoQueryProvider provider, Expression expression) in C:\Users\Admin\GitHub\mongo-csharp-driver\src\MongoDB.Driver\Linq\Translators\MongoQueryTranslator.cs:line 47
at MongoDB.Driver.Linq.MongoQueryProvider.Execute(Expression expression) in C:\Users\Admin\GitHub\mongo-csharp-driver\src\MongoDB.Driver\Linq\MongoQueryProvider.cs:line 151
at MongoDB.Driver.Linq.MongoQueryable`1.GetEnumerator() in C:\Users\Admin\GitHub\mongo-csharp-driver\src\MongoDB.Driver\Linq\MongoQueryable.cs:line 80
at System.Net.Http.Formatting.DelegatingEnumerable`1.GetEnumerator() at WriteArrayOfentryToXml(XmlWriterDelegator , Object , XmlObjectSerializerWriteContext , CollectionDataContract )
at System.Runtime.Serialization.CollectionDataContract.WriteXmlValue(XmlWriterDelegator xmlWriter, Object obj, XmlObjectSerializerWriteContext context)
at System.Runtime.Serialization.XmlObjectSerializerWriteContext.WriteDataContractValue(DataContract dataContract, XmlWriterDelegator xmlWriter, Object obj, RuntimeTypeHandle declaredTypeHandle)
at System.Runtime.Serialization.XmlObjectSerializerWriteContext.SerializeWithoutXsiType(DataContract dataContract, XmlWriterDelegator xmlWriter, Object obj, RuntimeTypeHandle declaredTypeHandle)
at System.Runtime.Serialization.DataContractSerializer.InternalWriteObjectContent(XmlWriterDelegator writer, Object graph, DataContractResolver dataContractResolver)
at System.Runtime.Serialization.DataContractSerializer.InternalWriteObject(XmlWriterDelegator writer, Object graph, DataContractResolver dataContractResolver) at System.Runtime.Serialization.XmlObjectSerializer.WriteObjectHandleExceptions(XmlWriterDelegator writer, Object graph, DataContractResolver dataContractResolver) at System.Runtime.Serialization.DataContractSerializer.WriteObject(XmlWriter writer, Object graph) at System.Net.Http.Formatting.XmlMediaTypeFormatter.WriteToStream(Type type, Object value, Stream writeStream, HttpContent content) at System.Net.Http.Formatting.XmlMediaTypeFormatter.WriteToStreamAsync(Type type, Object value, Stream writeStream, HttpContent content, TransportContext transportContext, CancellationToken cancellationToken) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Web.Http.WebHost.HttpControllerHandler.<WriteBufferedResponseContentAsync>d__1b.MoveNext()
</StackTrace>
</InnerException>
</Error>



 Comments   
Comment by Robert Stam [ 24/Oct/16 ]

Waiting for sample code from peter.garafano to reproduce this.

Comment by Mattias Jämting [ 28/Dec/15 ]

I get this error when trying to implement a mobile app offline sync backend with Azure, C# and MongoDB. Client is a windows 8 app. Error occurs on initial pull. Grateful for fix or hints on workarounds.

Thanks,
Mattias

Generated at Wed Feb 07 21:38:24 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.