как отсортировать столбец varchar, содержащий числовые значения, с помощью лямбда-выражения linq в Entity

Я использую linq lambdas для запроса MySql (обратите внимание, MySql не Sql) с Entity Framwork в MVC. Теперь у меня есть один столproduct один из столбцов этой таблицыprice с типом данных "VARCHAR" (примите, что я не могу изменить тип на INT, так как он может содержать значения типа "N / A" и т. д.).

Я хочу отсортироватьprice численно колонка с linq Lambdas. Я попробовал ниже. Я используюModel значения для фильтрации запроса.

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

Но это не сработает и выдаст мне ошибку.

LINQ to Entities не распознает метод метода System.String PadLeft (Int32, Char), и этот метод нельзя преобразовать в выражение хранилища.

Поскольку это не может преобразовать в заявление Sql Entm Framwork.

Я также попробовал ниже.

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

Но я не могу сделать это, потому что это работает для списка, но я не могу сначала сделать список, а затем сделать это, как я использую linqSkip() а такжеTake() поэтому сначала я должен отсортировать это.

Итак, как я могу отсортировать столбец цен типа "VARCHAR" в Linq lambda?

РЕДАКТИРОВАТЬ

В таблице это:

59,59,400,185,34

Когда я использую OrderBy. Затем он дает

34,59,59,106,185,400

Это выглядит как сортировка по возрастанию. Но когда я использую OrderByDescending.ThenBy, это дает

106,185,400,34,59,59

Так что я не могу использовать это.

ПРИМЕЧАНИЕ: Пожалуйста, укажите причины, прежде чем Downvote, чтобы я мог улучшить свой вопрос ...