Details
-
Task
-
Resolution: Done
-
Major - P3
-
None
-
2.0
-
Windows 8.1 x64
MongoDB version: v2.6.5
Description
I have custom discriminator inherited from IDiscriminatorConvention. It adds type discriminator element (i.e. {"_t":8}) to all saved instances.
FindOneAndUpdateAsync methods throws deserialization exception:
System.AggregateException : One or more errors occurred.
----> MongoDB.Bson.BsonSerializationException : Unknown discriminator value '2'.
Fluent Find method deserializes instances without any problem respecting my discriminator convention.
Detailed stack trace:
System.AggregateException : One or more errors occurred.
|
----> MongoDB.Bson.BsonSerializationException : Unknown discriminator value '2'. |
Result StackTrace:
|
at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
|
at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification)
|
at System.Threading.Tasks.Task`1.get_Result()
|
at MongoConnect.Extensions.RunSync[T](Task`1 task) in c:\dev\MongoConnectPrev\MongoConnect\MongoConnect\Utl\Extensions.cs:line 14 |
at MongoConnect.MongoDbProvider.UpdatePropertyInternal(UpdateOperation op, IPersistentObject obj, String propertyName, Object value) in c:\dev\MongoConnectPrev\MongoConnect\MongoConnect\Providers\MongoDbProvider.cs:line 123 |
at MongoConnect.MongoDbProvider.IncrementProperty(IPersistentObject obj, String propertyName, Int32 increment) in c:\dev\MongoConnectPrev\MongoConnect\MongoConnect\Providers\MongoDbProvider.cs:line 93 |
at MongoConnect.BaseDataObject.IncrementProperty(String propertyName, Int32 value) in c:\dev\MongoConnectPrev\MongoConnect\MongoConnect\BasicObjects\BaseDataObject.cs:line 229 |
at MongoConnect.BaseDataObject.IncrementProperty[T](Expression`1 expression, Int32 value) in c:\dev\MongoConnectPrev\MongoConnect\MongoConnect\BasicObjects\BaseDataObject.cs:line 256 |
at MongoConnect.Tests.AtomicUpdateTests.IncrementPropertyTest() in c:\dev\MongoConnectPrev\MongoConnect\MongoConnect.Tests\DB\AtomicUpdateTests.cs:line 31 |
--BsonSerializationException
|
at MongoDB.Bson.Serialization.BsonSerializer.LookupActualType(Type nominalType, BsonValue discriminator) in d:\jenkins\workspace\mongo-csharp-driver-build\src\MongoDB.Bson\Serialization\BsonSerializer.cs:line 328 |
at MongoDB.Bson.Serialization.Conventions.ObjectDiscriminatorConvention.GetActualType(IBsonReader bsonReader, Type nominalType) in d:\jenkins\workspace\mongo-csharp-driver-build\src\MongoDB.Bson\Serialization\Conventions\ObjectDiscriminatorConvention.cs:line 125 |
at MongoDB.Bson.Serialization.Serializers.DiscriminatedInterfaceSerializer`1.Deserialize(BsonDeserializationContext context, BsonDeserializationArgs args) in d:\jenkins\workspace\mongo-csharp-driver-build\src\MongoDB.Bson\Serialization\Serializers\DiscriminatedInterfaceSerializer.cs:line 80 |
at MongoDB.Bson.Serialization.IBsonSerializerExtensions.Deserialize[TValue](IBsonSerializer`1 serializer, BsonDeserializationContext context) in d:\jenkins\workspace\mongo-csharp-driver-build\src\MongoDB.Bson\Serialization\IBsonSerializerExtensions.cs:line 48 |
at MongoDB.Driver.Core.Operations.ElementDeserializer`1.Deserialize(BsonDeserializationContext context, BsonDeserializationArgs args) in d:\jenkins\workspace\mongo-csharp-driver-build\src\MongoDB.Driver.Core\Core\Operations\ElementDeserializer.cs:line 64 |
at MongoDB.Bson.Serialization.IBsonSerializerExtensions.Deserialize[TValue](IBsonSerializer`1 serializer, BsonDeserializationContext context) in d:\jenkins\workspace\mongo-csharp-driver-build\src\MongoDB.Bson\Serialization\IBsonSerializerExtensions.cs:line 48 |
at MongoDB.Driver.Core.Operations.FindAndModifyValueDeserializer`1.Deserialize(BsonDeserializationContext context, BsonDeserializationArgs args) in d:\jenkins\workspace\mongo-csharp-driver-build\src\MongoDB.Driver.Core\Core\Operations\FindAndModifyValueDeserializer.cs:line 44 |
at MongoDB.Bson.Serialization.IBsonSerializerExtensions.Deserialize[TValue](IBsonSerializer`1 serializer, BsonDeserializationContext context) in d:\jenkins\workspace\mongo-csharp-driver-build\src\MongoDB.Bson\Serialization\IBsonSerializerExtensions.cs:line 48 |
at MongoDB.Driver.Core.WireProtocol.CommandWireProtocol`1.ProcessReply(ConnectionId connectionId, ReplyMessage`1 reply) in d:\jenkins\workspace\mongo-csharp-driver-build\src\MongoDB.Driver.Core\Core\WireProtocol\CommandWireProtocol.cs:line 104 |
at MongoDB.Driver.Core.WireProtocol.CommandWireProtocol`1.<ExecuteAsync>d__0.MoveNext() in d:\jenkins\workspace\mongo-csharp-driver-build\src\MongoDB.Driver.Core\Core\WireProtocol\CommandWireProtocol.cs:line 98 |