Pesquisa através da cláusula Where no LINQ, usando propriedades dinâmicas

Estou basicamente tentando construir uma consulta e não sei por que a Microsoft tornou isso tão difícil no Entity Framework e no LINQ. Eu tenho vários parâmetros STRINGS. Então, se você vir uma variável, suponha que seja uma string passada de algum lugar.

             users = this.entities.tableUsers
                .Where(searchfield+" LIKE %@0%", search)
                .OrderBy(x => x.GetType().GetProperty(order_by).GetValue(x, null).ToString())
                .Skip(Convert.ToInt32(limit_begin))
                .Take(Convert.ToInt32(limit_end))
                .ToList();

Minha pergunta é o que colocar dentro da função "Where ()" no LINQ.

Eu quero procurar um campo com string "searchfield", para o valor .contains () "search".

Não tenho certeza porque o Visual Studio não me permite fazer isso facilmente.

Eu tentei isso também, sem sorte:

.Where(x => x.GetType().GetProperty(searchfield).GetValue(x, null).ToList().Contains(search))

Nota: Eu não quero instalar nenhuma nova biblioteca, isso deve ser incrivelmente fácil e simples para um idioma moderno. Eu não me importo se a consulta retorna todas as linhas e eu procurá-lo depois com .Contains ().

questionAnswers(4)

yourAnswerToTheQuestion