Строка заказа, но значения являются числами (двойными)

1

Я хочу сортировать (JamMulai) которые являются строками, но значение - это числа. Я бы хотел (JamMulai) отсортировать численно

мой запрос:

var query = from j in db.JadwalKuliah
            orderby j.JamMulai
            select j

и j.JamMulai значение подобно { "13", "12,3", "7", "15", "10,3"};

вывод:

(10,3), (12,3), 13, 15, 7

Мне бы хотелось:

7, (10,3), (12,3), 13,15

Я пытаюсь преобразовать в double:

var query = from j in db.JadwalKuliah
            orderby Convert.ToDouble(j.JamMulai)
            select j

но ошибка:

Дополнительная информация: LINQ to Entities не распознает метод "Double ToDouble (System.String)", и этот метод не может быть переведен в выражение хранилища.

  • 0
    Вы используете {"13", "12,3", "7", "15", "10,3"}; как значение j.JamMulai это опечатка или значение похоже на это только потому, что оно имеет «12,3» и «10,3», которые будут обрабатываться как строковые события, даже если вы конвертируете или анализируете
  • 0
    это не опечатка, значение JamMulai в таблице так
Теги:
linq

2 ответа

2

Использовать parse вместо преобразования

    var numbers = new string[]{ "13", "12,3", "7", "15", "10,3"};

    var sortedNumbers = numbers.
        Select(number => double.Parse(number)).
        OrderBy(number => number).ToArray();
  • 0
    это все еще не работает, когда я начал проект. эта ошибка: Дополнительная информация: LINQ to Entities не распознает метод метода Double Parse (System.String), и этот метод не может быть преобразован в выражение хранилища.
  • 0
    Попробуйте посмотреть в этом сообщении stackoverflow.com/questions/5971521/…
1

Проблема заключается в том, что ваш запрос переводится в SQL и запускается в базе данных, а Entity Framework не знает, как перевести Double ToDouble(System.String) в действительный код SQL, вы можете загрузить данные в память, а затем выполнить Сортировать по:-

var query = db.JadwalKuliah.ToList()
              .OrderBy(x => double.Parse(x))
              .ToArray();
  • 0
    Привет, как я могу заказать Double для любого языка? У меня проблемы с английским и португальским языками.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню