@@ -1305,7 +1305,7 @@ public static PipelineStageDefinition<TInput, TOutput> Project<TInput, TOutput>(
1305
1305
ExpressionTranslationOptions translationOptions = null )
1306
1306
{
1307
1307
Ensure . IsNotNull ( projection , nameof ( projection ) ) ;
1308
- return Project ( new ProjectExpressionProjection < TInput , TOutput > ( projection , translationOptions ) ) ;
1308
+ return Project ( new ExpressionProjectionDefinition < TInput , TOutput > ( projection , translationOptions ) ) ;
1309
1309
}
1310
1310
1311
1311
/// <summary>
@@ -1905,6 +1905,11 @@ public override RenderedProjectionDefinition<TOutput> Render(IBsonSerializer<TIn
1905
1905
1906
1906
return linqProvider . GetAdapter ( ) . TranslateExpressionToBucketOutputProjection ( _valueExpression , _outputExpression , documentSerializer , serializerRegistry , _translationOptions ) ;
1907
1907
}
1908
+
1909
+ internal override RenderedProjectionDefinition < TOutput > RenderForFind ( IBsonSerializer < TInput > sourceSerializer , IBsonSerializerRegistry serializerRegistry , LinqProvider linqProvider )
1910
+ {
1911
+ throw new InvalidOperationException ( ) ;
1912
+ }
1908
1913
}
1909
1914
1910
1915
internal sealed class GroupExpressionProjection < TInput , TKey , TOutput > : ProjectionDefinition < TInput , TOutput >
@@ -1938,14 +1943,19 @@ public override RenderedProjectionDefinition<TOutput> Render(IBsonSerializer<TIn
1938
1943
}
1939
1944
return linqProvider . GetAdapter ( ) . TranslateExpressionToGroupProjection ( _idExpression , _groupExpression , documentSerializer , serializerRegistry , _translationOptions ) ;
1940
1945
}
1946
+
1947
+ internal override RenderedProjectionDefinition < TOutput > RenderForFind ( IBsonSerializer < TInput > sourceSerializer , IBsonSerializerRegistry serializerRegistry , LinqProvider linqProvider )
1948
+ {
1949
+ throw new InvalidOperationException ( ) ;
1950
+ }
1941
1951
}
1942
1952
1943
- internal sealed class ProjectExpressionProjection < TInput , TOutput > : ProjectionDefinition < TInput , TOutput >
1953
+ internal sealed class ExpressionProjectionDefinition < TInput , TOutput > : ProjectionDefinition < TInput , TOutput >
1944
1954
{
1945
1955
private readonly Expression < Func < TInput , TOutput > > _expression ;
1946
1956
private readonly ExpressionTranslationOptions _translationOptions ;
1947
1957
1948
- public ProjectExpressionProjection ( Expression < Func < TInput , TOutput > > expression , ExpressionTranslationOptions translationOptions )
1958
+ public ExpressionProjectionDefinition ( Expression < Func < TInput , TOutput > > expression , ExpressionTranslationOptions translationOptions )
1949
1959
{
1950
1960
_expression = Ensure . IsNotNull ( expression , nameof ( expression ) ) ;
1951
1961
_translationOptions = translationOptions ; // can be null
@@ -1960,6 +1970,11 @@ public override RenderedProjectionDefinition<TOutput> Render(IBsonSerializer<TIn
1960
1970
{
1961
1971
return linqProvider . GetAdapter ( ) . TranslateExpressionToProjection ( _expression , inputSerializer , serializerRegistry , _translationOptions ) ;
1962
1972
}
1973
+
1974
+ internal override RenderedProjectionDefinition < TOutput > RenderForFind ( IBsonSerializer < TInput > sourceSerializer , IBsonSerializerRegistry serializerRegistry , LinqProvider linqProvider )
1975
+ {
1976
+ return linqProvider . GetAdapter ( ) . TranslateExpressionToFindProjection ( _expression , sourceSerializer , serializerRegistry ) ;
1977
+ }
1963
1978
}
1964
1979
1965
1980
internal class SortPipelineStageDefinition < TInput > : PipelineStageDefinition < TInput , TInput >
0 commit comments