From fc071005b241fc7d0574f0ef359bfe1325cd5c54 Mon Sep 17 00:00:00 2001
From: LucStr <25279790+LucStr@users.noreply.github.com>
Date: Thu, 18 Jan 2024 19:52:31 +0100
Subject: [PATCH 1/3] CSHARP-4935 allow Linq Translation conversion from
interface to derived type.
---
.../DiscriminatedInterfaceSerializer.cs | 18 ++++-
...essionToAggregationExpressionTranslator.cs | 2 +-
...onvertExpressionToFilterFieldTranslator.cs | 2 +-
...nToAggregationExpressionTranslatorTests.cs | 66 ++++++++++++++++++-
...onvertExpressionToFilterTranslatorTests.cs | 33 +++++++++-
5 files changed, 115 insertions(+), 6 deletions(-)
diff --git a/src/MongoDB.Bson/Serialization/Serializers/DiscriminatedInterfaceSerializer.cs b/src/MongoDB.Bson/Serialization/Serializers/DiscriminatedInterfaceSerializer.cs
index ca2fef6fe07..63869a8582a 100644
--- a/src/MongoDB.Bson/Serialization/Serializers/DiscriminatedInterfaceSerializer.cs
+++ b/src/MongoDB.Bson/Serialization/Serializers/DiscriminatedInterfaceSerializer.cs
@@ -75,7 +75,7 @@ public DiscriminatedInterfaceSerializer()
/// interfaceType
/// interfaceType
public DiscriminatedInterfaceSerializer(IDiscriminatorConvention discriminatorConvention)
- : this(discriminatorConvention, CreateInterfaceSerializer())
+ : this(discriminatorConvention, CreateInterfaceSerializer(), objectSerializer: null)
{
}
@@ -87,6 +87,19 @@ public DiscriminatedInterfaceSerializer(IDiscriminatorConvention discriminatorCo
/// interfaceType
/// interfaceType
public DiscriminatedInterfaceSerializer(IDiscriminatorConvention discriminatorConvention, IBsonSerializer interfaceSerializer)
+ : this(discriminatorConvention, interfaceSerializer, objectSerializer: null)
+ {
+ }
+
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ /// The discriminator convention.
+ /// The interface serializer (necessary to support LINQ queries).
+ /// The serializer that is used to serialize any objects.
+ /// interfaceType
+ /// interfaceType
+ public DiscriminatedInterfaceSerializer(IDiscriminatorConvention discriminatorConvention, IBsonSerializer interfaceSerializer, IBsonSerializer