Como escrever consulta LINQ com o nome da coluna como parâmetro ainda em um modo seguro de tipo

Estou procurando ajuda sobre como conseguir isso com o LINQ de maneira segura.

Eu preciso executar a pesquisa na tabela "Desempenho" com muitas colunas. Com base nos critérios especificados para pesquisa, preciso escolher colunas e realizar pesquisas nessas colunas com valores fornecidos.

private static IQueryable<Investment> PerformanceSearch(IQueryable<Investment> investments, **??? searchColumn**, double minValue, double maxValue)
{
  var entity = ExtendedEntities.Current;

  investments = from inv in entity.Investments 
                join performance in entity.Performances on inv.InvestmentID equals perfromance.InvestmentID
                where **performance.searchColumn** >= minValue && **performance.searchColumn** = maxValue
  return investments;
}

Agora estou buscando sua ajuda em:

Como passar a coluna "searchColumn" para este método de maneira segura? Eu estava pensando em criar um objeto de dicionário para acomodar alguma maneira de manter os nomes das colunas da estrutura de entidade. Mas não tenho certeza de como conseguir isso.

Como realizar a consulta LINQ usando o columnName passado e aplicando a cláusula where.

Eu não posso usar se caso Else ou Switch como abaixo é uma lista de possíveis colunas de pesquisa ...

/*
 * Search Columns can be:
 *      "Return1Month", "Return2Months", "Return3Months", ... almost 10 more and
 *      "Risk1Month", "Risk2Months", "Risk3Months", ... almost 10 more and
 *      "TrackingError1Month", "TrackingError2Months", "TrackingError3Months", ... almost 10 more and
 *      2 more similar set of columns ... 
 */

Passei tempo no Stackoverflow, Microsoft e outros blogs e considerei usar o LINQ dinâmico, mas não é seguro. istoparece que é possível usar expressões, mas não conseguiu fazer isso funcionar.

Qualquer conselho é apreciado.

EDITAR -

Outro item a mencionar - todas as colunas de pesquisa estão presentes na tabela "desempenho".

questionAnswers(4)

yourAnswerToTheQuestion