-
Type:
Bug
-
Resolution: Fixed
-
Priority:
Unknown
-
Affects Version/s: 3.7.0
-
Component/s: Aggregation, LINQ
-
None
-
None
-
Fully Compatible
-
Dotnet Drivers
-
Not Needed
-
None
-
None
-
None
-
None
-
None
-
None
Summary
Some $set expressions throw an ExpressionNotSupportedException in version 3.7.0, but did not in version 3.6.0 and below. This exception is only thrown if the type parameters for PipelineStageDefinitionBuilder.Set are the same. If they are different, no exception is thrown. Below is an example stack trace and a C# console application demonstrating the issue.
_MongoDB.Driver.Linq.ExpressionNotPipelineStageDefinitionBuilder.SetSupportedException: Expression not supported: source.List1.Concat(source.List2).ToList() because member and value serializers are not compatible.
at MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToSetStageTranslators.ExpressionToSetStageTranslator.ThrowIfMemberAndValueSerializersAreNotCompatible(Expression expression, IBsonSerializer memberSerializer, IBsonSerializer valueSerializer)
at MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToSetStageTranslators.ExpressionToSetStageTranslator.CreateComputedField(TranslationContext context, IBsonDocumentSerializer documentSerializer, MemberInfo member, Expression valueExpression)
at MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToSetStageTranslators.ExpressionToSetStageTranslator.TranslateNewWithOptionalMemberInitializers(TranslationContext context, IBsonDocumentSerializer documentSerializer, MemberInitExpression memberInitExpression)
at MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToSetStageTranslators.ExpressionToSetStageTranslator.Translate(TranslationContext context, IBsonSerializer inputSerializer, LambdaExpression expression)
at MongoDB.Driver.Linq.LinqProviderAdapter.TranslateExpressionToSetStage[TDocument,TFields](Expression`1 expression, IBsonSerializer`1 documentSerializer, IBsonSerializerRegistry serializerRegistry, ExpressionTranslationOptions translationOptions)
at MongoDB.Driver.ExpressionSetFieldDefinitions`2.Render(RenderArgs`1 args)
at MongoDB.Driver.PipelineStageDefinitionBuilder.<>c_DisplayClass55_0`1.<Set>b_0(RenderArgs`1 args)
at MongoDB.Driver.DelegatedPipelineStageDefinition`2.Render(RenderArgs`1 args)
at Program.<Main>$(String[] args) in Program.cs:line 18_
How to Reproduce
- related to
-
CSHARP-5572 Implement new SerializerFinder
-
- Closed
-