using MongoDB.Bson; using MongoDB.Bson.Serialization; using MongoDB.Bson.Serialization.Attributes; using MongoDB.Driver; using MongoDB.Driver.Linq; using System.Linq; internal class C { [BsonRepresentation(BsonType.String)] public E E1 { get; set; } [BsonRepresentation(BsonType.String)] public E E2 { get; set; } } internal enum E { Zero, A, B } public class TestClass { public static void Main() { var pipeline = new EmptyPipelineDefinition() .Project(d => new { E = d.E1 != E.Zero ? d.E1 : d.E2}); var linqProvider = LinqProvider.V3; var pipelineRendered = pipeline.Render(BsonSerializer.LookupSerializer(), BsonSerializer.SerializerRegistry, linqProvider).Documents.Select(d => d.ToString()).ToArray(); } }