cómo ordenar la columna varchar que contiene valores numéricos con linq lambdas a Entity

Estoy usando linq lambdas para consultar MySql (Nota MySql no Sql) con Entity Framwork en MVC. Ahora tengo una mesaproduct uno de la columna esta tabla esprice con el tipo de datos "VARCHAR" (Aceptar, no puedo cambiar el tipo a INT, ya que puede contener valores como "N / A", etc.).

Quiero ordenarprice columna numéricamente con linq Lambdas. He intentado a continuación. Estoy usandoModel valores para filtrar 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'));
}

Pero no funcionará y me dará el siguiente error.

LINQ to Entities no reconoce el método 'System.String PadLeft (Int32, Char)', y este método no se puede traducir a una expresión de tienda.

Como no puede convertir a la declaración SQL por Entity Framwork.

También lo intenté a continuación.

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);
}

Pero no puedo hacer esto porque funciona para List, pero primero no puedo hacer una lista y luego hacerlo porque estoy usando linqSkip() yTake() así que primero tengo que ordenarlo.

Entonces, ¿cómo puedo ordenar la columna de precios del tipo "VARCHAR" en Linq lambda?

EDITAR

En tabla es:

59,59,400,185,34

Cuando uso OrderBy.ThenBy da

34,59,59,106,185,400

Parece correcto como ascendente, pero cuando uso OrderByDescending. Entonces, me da

106,185,400,34,59,59

Entonces no puedo usar esto.

NOTA: Indique los motivos antes de Downvote para que pueda mejorar mi pregunta ...