-
Type:
Task
-
Resolution: Done
-
Priority:
Major - P3
-
None
-
Affects Version/s: 2.4.2
-
Component/s: Serialization
-
None
-
None
-
None
-
None
-
None
-
None
-
None
mongocsharpdriver 2.4.2
Sample:
namespace ConsoleApplication { using System; using System.Linq; using MongoDB.Bson.Serialization.Serializers; using MongoDB.Driver; class Program { static void Main(string[] args) { MongoDB.Bson.Serialization.BsonSerializer.RegisterSerializer(typeof(DateTime), new DateTimeSerializer(DateTimeKind.Local)); MongoDB.Bson.Serialization.BsonSerializer.RegisterSerializer(typeof(DateTime?), new DateTimeSerializer(DateTimeKind.Local)); new MongoClient("mongodb://localhost/testdb") .GetDatabase("testdb") .GetCollection<TestItem>(typeof(TestItem).Name) .AsQueryable() .Count(e => e.Date == null); } } public sealed class TestItem { public Guid Id { get; set; } public DateTime? Date { get; set; } } }
Exception:
An unhandled exception of type 'System.InvalidOperationException' occurred in System.Core.dll Additional information: The operands for operator 'Equal' do not match the parameters of method 'op_Equality'. at System.Linq.Expressions.Expression.GetMethodBasedBinaryOperator(ExpressionType binaryType, Expression left, Expression right, MethodInfo method, 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.BinaryExpression.Update(Expression left, LambdaExpression conversion, Expression right) at System.Linq.Expressions.ExpressionVisitor.VisitBinary(BinaryExpression node) at MongoDB.Driver.Linq.Processors.SerializationBinder.VisitBinary(BinaryExpression node) at System.Linq.Expressions.BinaryExpression.Accept(ExpressionVisitor visitor) at MongoDB.Driver.Linq.Processors.SerializationBinder.Visit(Expression node) at MongoDB.Driver.Linq.Processors.PipelineBindingContext.Bind(Expression node) at MongoDB.Driver.Linq.Processors.BinderHelper.BindWhere(PipelineExpression pipeline, IBindingContext bindingContext, LambdaExpression lambda) at MongoDB.Driver.Linq.Processors.Pipeline.MethodCallBinders.CountBinder.Bind(PipelineExpression pipeline, PipelineBindingContext bindingContext, MethodCallExpression node, IEnumerable`1 arguments) at MongoDB.Driver.Linq.Processors.MethodInfoMethodCallBinder`1.Bind(PipelineExpression pipeline, TBindingContext bindingContext, MethodCallExpression node, IEnumerable`1 arguments) at MongoDB.Driver.Linq.Processors.PipelineBinderBase`1.BindMethodCall(MethodCallExpression node) at MongoDB.Driver.Linq.Processors.PipelineBinderBase`1.Bind(Expression node) at MongoDB.Driver.Linq.Processors.Pipeline.PipelineBinder.Bind(Expression node, IBsonSerializerRegistry serializerRegistry) at MongoDB.Driver.Linq.MongoQueryProviderImpl`1.Prepare(Expression expression) at MongoDB.Driver.Linq.MongoQueryProviderImpl`1.Translate(Expression expression) at MongoDB.Driver.Linq.MongoQueryProviderImpl`1.Execute(Expression expression) at MongoDB.Driver.Linq.MongoQueryProviderImpl`1.Execute[TResult](Expression expression) at System.Linq.Queryable.Count[TSource](IQueryable`1 source, Expression`1 predicate) at ConsoleApplication11.Program.Main(String[] args) in c:\users\gushin\documents\visual studio 2015\Projects\ConsoleApplication11\ConsoleApplication11\Program.cs:line 16 at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args) at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args) at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() at System.Threading.ThreadHelper.ThreadStart_Context(Object state) at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.ThreadHelper.ThreadStart()
- is related to
-
CSHARP-1949 BsonSerializer RegisterSerializer should validate serializer argument
-
- Closed
-