我想对字符串(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 :(得分: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();
答案 1 :(得分:1)
这里的问题是您的查询被转换为SQL并在数据库上运行,并且Entity Framework不知道如何将Double ToDouble(System.String)
转换为有效的SQL代码,您可以将数据加载到内存中然后执行命令: -
var query = db.JadwalKuliah.ToList()
.OrderBy(x => double.Parse(x))
.ToArray();