¿Cómo puedo transformar esta expresión linq?

Digamos que tengo una entidad que quiero consultar con clasificación aplicada:

public class Person: Entity
{
    public int Id { get; protected set; }
    public string Name { get; set; }
    public DateTime Birthday { get; set; }
}

En mi consulta tengo lo siguiente:

Expression<Func<Person, object>> orderBy = x => x.Name;

var dbContext = new MyDbContext();

var keyword = "term";
var startsWithResults = dbContext.People
    .Where(x => x.Name.StartsWith(keyword))
    .Select(x => new {
        Rank = 1,
        Entity = x,
    });
var containsResults = dbContext.People
    .Where(x => !startsWithResults.Select(y => y.Entity.Id).Contains(x.Id))
    .Where(x => x.Name.Contains(keyword))
    .Select(x => new {
        Rank = 2,
        Entity = x,
    });

var rankedResults = startsWithResults.Concat(containsResults)
    .OrderBy(x => x.Rank);

// TODO: apply thenby ordering here based on the orderBy expression above

dbContext.Dispose();

He intentado ordenar los resultados antes de seleccionar el objeto anónimo con elRank&nbsp;Propiedad, pero el pedido termina perdiéndose. Parece que linq a las entidades descarta el orden de los conjuntos separados y vuelve al orden natural durante ambosConcat&nbsp;yUnion.

Lo que creo que puedo hacer es transformar dinámicamente la expresión definida en elorderBy&nbsp;variable desdex => x.Name&nbsp;ax => x.Entity.Name, pero no estoy seguro de cómo

if (orderBy != null)
{
    var transformedExpression = ???
    rankedResults = rankedResults.ThenBy(transformedExpression);
}

¿Cómo podría ser capaz de usarExpression.Lambda&nbsp;envolverx => x.Name&nbsp;dentrox => x.Entity.Name? Cuando codigo durox => x.Entity.Name&nbsp;en elThenBy&nbsp;Tengo el pedido que quiero, pero elorderBy&nbsp;es proporcionado por la clase que llama de la consulta, por lo que no quiero incluirlo en el código. Lo tengo en el ejemplo anterior para simplificar la explicación solamente.