Я хочу сортировать (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)", и этот метод не может быть переведен в выражение хранилища.
Использовать parse
вместо преобразования
var numbers = new string[]{ "13", "12,3", "7", "15", "10,3"};
var sortedNumbers = numbers.
Select(number => double.Parse(number)).
OrderBy(number => number).ToArray();
Проблема заключается в том, что ваш запрос переводится в SQL и запускается в базе данных, а Entity Framework не знает, как перевести Double ToDouble(System.String)
в действительный код SQL, вы можете загрузить данные в память, а затем выполнить Сортировать по:-
var query = db.JadwalKuliah.ToList()
.OrderBy(x => double.Parse(x))
.ToArray();