Skip to content

Commit 7d7a2fc

Browse files
committed
cosmetic
1 parent c837bab commit 7d7a2fc

File tree

1 file changed

+5
-10
lines changed

1 file changed

+5
-10
lines changed

src/AutoMapper/QueryableExtensions/ProjectionBuilder.cs

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -66,21 +66,16 @@ QueryExpressions CreateProjection(in ProjectionRequest request, LetPropertyMaps
6666
{
6767
var instanceParameter = Parameter(request.SourceType, "dto" + request.SourceType.Name);
6868
var projection = CreateProjectionCore(request, instanceParameter, typeMap, letPropertyMaps);
69-
if (polymorphicMaps.Length > 0)
69+
foreach(var derivedMap in polymorphicMaps)
7070
{
71-
return new(Include(polymorphicMaps, request, projection, instanceParameter, letPropertyMaps), instanceParameter);
71+
var sourceType = derivedMap.SourceType;
72+
var derivedRequest = request.InnerRequest(sourceType, derivedMap.DestinationType);
73+
var derivedProjection = CreateProjectionCore(derivedRequest, Convert(instanceParameter, sourceType), derivedMap, letPropertyMaps);
74+
projection = Condition(TypeIs(instanceParameter, sourceType), derivedProjection, projection, projection.Type);
7275
}
7376
return letPropertyMaps.Count > 0 ?
7477
letPropertyMaps.GetSubQueryExpression(this, projection, typeMap, request, instanceParameter) :
7578
new(projection, instanceParameter);
76-
Expression Include(ReadOnlySpan<TypeMap> typeMaps, in ProjectionRequest request, Expression last, ParameterExpression instanceParameter, LetPropertyMaps letPropertyMaps)
77-
{
78-
var derivedMap = typeMaps[0];
79-
var sourceType = derivedMap.SourceType;
80-
var derivedProjection = CreateProjectionCore(request.InnerRequest(sourceType, derivedMap.DestinationType), Convert(instanceParameter, sourceType), derivedMap, letPropertyMaps);
81-
return Condition(TypeIs(instanceParameter, sourceType), derivedProjection,
82-
typeMaps.Length == 1 ? last : Include(typeMaps[1..], request, last, instanceParameter, letPropertyMaps), last.Type);
83-
}
8479
}
8580
private Expression CreateProjectionCore(ProjectionRequest request, Expression instanceParameter, TypeMap typeMap, LetPropertyMaps letPropertyMaps)
8681
{

0 commit comments

Comments
 (0)