日期:2014-05-18  浏览次数:20769 次

泛型
dataContext.Progress.OrderByDescending(i => i.PipeNo);

按pipeNO排序
1、2、3、11、4排序时
字符排序结果可能为
1、11、2、3、4
我希望的排序为
1、2、3、4、11



pipeno在数据库里面是nvarchar(50)的字符类型,但是里面存放的全是整数
现在我想对PipeNo做整数降序排序,但是如下写法均不能通过
dataContext.Progress.OrderByDescending(i =>int.parse(i.PipeNo));报语法错误这里int.parse

dataContext.Progress.OrderByDescending(i =>"cast("+i.PipeNo+" as int)");和dataContext.Progress.OrderByDescending(i => i.PipeNo);排序结果完全一样


求解!

------解决方案--------------------
转换才整型再排序,
Int.Parse(q.Field<string>("PipeNo").ToString())
------解决方案--------------------
dataContext.Progress.OrderByDescending(i => Convert.ToInt32(i.PipeNo));