@@ -66,7 +66,7 @@ public static IAggregateFluent<TNewResult> Group<TResult, TKey, TNewResult>(this
6666 Ensure . IsNotNull ( id , nameof ( id ) ) ;
6767 Ensure . IsNotNull ( group , nameof ( group ) ) ;
6868
69- return aggregate . Group < TNewResult > ( new GroupExpressionProjection < TResult , TKey , TNewResult > ( id , group ) ) ;
69+ return aggregate . Group < TNewResult > ( new GroupExpressionProjection < TResult , TKey , TNewResult > ( id , group , aggregate . Options . TranslationOptions ) ) ;
7070 }
7171
7272 /// <summary>
@@ -188,7 +188,7 @@ public static IAggregateFluent<TNewResult> Project<TResult, TNewResult>(this IAg
188188 Ensure . IsNotNull ( aggregate , nameof ( aggregate ) ) ;
189189 Ensure . IsNotNull ( projection , nameof ( projection ) ) ;
190190
191- return aggregate . Project < TNewResult > ( new ProjectExpressionProjection < TResult , TNewResult > ( projection ) ) ;
191+ return aggregate . Project < TNewResult > ( new ProjectExpressionProjection < TResult , TNewResult > ( projection , aggregate . Options . TranslationOptions ) ) ;
192192 }
193193
194194 /// <summary>
@@ -501,10 +501,12 @@ public static IAggregateFluent<TNewResult> Unwind<TResult, TNewResult>(this IAgg
501501 private sealed class ProjectExpressionProjection < TResult , TNewResult > : ProjectionDefinition < TResult , TNewResult >
502502 {
503503 private readonly Expression < Func < TResult , TNewResult > > _expression ;
504+ private readonly ExpressionTranslationOptions _translationOptions ;
504505
505- public ProjectExpressionProjection ( Expression < Func < TResult , TNewResult > > expression )
506+ public ProjectExpressionProjection ( Expression < Func < TResult , TNewResult > > expression , ExpressionTranslationOptions translationOptions )
506507 {
507508 _expression = Ensure . IsNotNull ( expression , nameof ( expression ) ) ;
509+ _translationOptions = translationOptions ;
508510 }
509511
510512 public Expression < Func < TResult , TNewResult > > Expression
@@ -514,19 +516,21 @@ public Expression<Func<TResult, TNewResult>> Expression
514516
515517 public override RenderedProjectionDefinition < TNewResult > Render ( IBsonSerializer < TResult > documentSerializer , IBsonSerializerRegistry serializerRegistry )
516518 {
517- return AggregateProjectTranslator . Translate < TResult , TNewResult > ( _expression , documentSerializer , serializerRegistry ) ;
519+ return AggregateProjectTranslator . Translate < TResult , TNewResult > ( _expression , documentSerializer , serializerRegistry , _translationOptions ) ;
518520 }
519521 }
520522
521523 private sealed class GroupExpressionProjection < TResult , TKey , TNewResult > : ProjectionDefinition < TResult , TNewResult >
522524 {
523525 private readonly Expression < Func < TResult , TKey > > _idExpression ;
524526 private readonly Expression < Func < IGrouping < TKey , TResult > , TNewResult > > _groupExpression ;
527+ private readonly ExpressionTranslationOptions _translationOptions ;
525528
526- public GroupExpressionProjection ( Expression < Func < TResult , TKey > > idExpression , Expression < Func < IGrouping < TKey , TResult > , TNewResult > > groupExpression )
529+ public GroupExpressionProjection ( Expression < Func < TResult , TKey > > idExpression , Expression < Func < IGrouping < TKey , TResult > , TNewResult > > groupExpression , ExpressionTranslationOptions translationOptions )
527530 {
528531 _idExpression = Ensure . IsNotNull ( idExpression , nameof ( idExpression ) ) ;
529532 _groupExpression = Ensure . IsNotNull ( groupExpression , nameof ( groupExpression ) ) ;
533+ _translationOptions = translationOptions ;
530534 }
531535
532536 public Expression < Func < TResult , TKey > > IdExpression
@@ -541,7 +545,7 @@ public Expression<Func<IGrouping<TKey, TResult>, TNewResult>> GroupExpression
541545
542546 public override RenderedProjectionDefinition < TNewResult > Render ( IBsonSerializer < TResult > documentSerializer , IBsonSerializerRegistry serializerRegistry )
543547 {
544- return AggregateGroupTranslator . Translate < TKey , TResult , TNewResult > ( _idExpression , _groupExpression , documentSerializer , serializerRegistry ) ;
548+ return AggregateGroupTranslator . Translate < TKey , TResult , TNewResult > ( _idExpression , _groupExpression , documentSerializer , serializerRegistry , _translationOptions ) ;
545549 }
546550 }
547551 }
0 commit comments