como classificar a coluna varchar contendo valores numéricos com linq lambdas para Entity

Estou usando o linq lambdas para consultar o MySql (note MySql não Sql) com o Entity Framwork no MVC. Agora eu tenho uma mesaproduct uma das colunas desta tabela éprice com o tipo de dados "VARCHAR" (Aceite, não posso alterar o tipo para INT, pois ele pode conter valores como "N / A" etc.).

Eu quero classificarprice coluna numericamente com linq Lambdas.Eu tentei abaixo. Estou usandoModel valores para filtrar a consulta.

var query = ent.Product.Where(b => b.cp == Model.CodePostal);

if (Model.order_by_flg == 2)
{
    query = query.OrderByDescending(a => a.price.PadLeft(10, '0'));
}

Mas não vai funcionar e me dá um erro abaixo.

O LINQ to Entities não reconhece o método 'System.String PadLeft (Int32, Char)' e esse método não pode ser convertido em uma expressão de armazenamento.

Como ele não pode ser convertido para a declaração Sql pelo Entity Framwork.

Eu também tentei abaixo.

var query = ent.Product.Where(b => b.cp == Model.CodePostal);

if (Model.order_by_flg == 2)
{
    query = query.OrderByDescending(a => a.price.Length).ThenBy(a => a.price);
}

Mas eu não posso fazer isso porque funciona para a lista, mas eu não posso primeiro fazer a lista e, em seguida, fazer isso como eu estou usando linqSkip() eTake() então primeiro eu tenho que resolver isso.

Então, como posso classificar a coluna de preços do tipo "VARCHAR" no Linq lambda?

EDITAR

Na tabela é:

59,59,400,185,34

Wnen eu uso OrderBy.ThenBy dá

34,59,59,106,185,400

Parece certo como classificação crescente, mas quando eu uso OrderByDescending.ThenBy, ele fornece

106,185,400,34,59,59

Então eu não posso usar isso.

NOTA: Por favor, forneça motivos antes do Downvote para que eu possa melhorar minha pergunta ...

questionAnswers(2)

yourAnswerToTheQuestion