sql语句是这样的:
select * from table order by len (c.num),c.num
结果:
id num
1 a1
2 a2
3 a3
..........
10 a10
from c in dbContext.table
order by c.num.Length,c.num
select c
orderby(cc=>num) 这样的怎么写呢?
orderby(cc=>cc.num.length) 没作用
@Y屌丝: 你应该是这样写的:var results = dbContext.Table.Orderby(cc=>cc.num.Length); 对吗?如果是,你定一个断点,然后查看生成的SQL语句是什么。
@程序猿.码农: 嗯, 新问题来了
Q.OrderBy(cc => cc.num.Length).OrderBy(cc => cc.num)
结果又和没排序是一样的了
@Y屌丝: 还是请你查看一下生成的SQL语句是什么
@程序猿.码农: 好的
@程序猿.码农: 看下这段
var Q = (from a in db.table orderby a.num.length,a.num); // 这里有查询条件 // 分页 var count = Q.Count(); Q = Q.OrderBy().Skip(start).Take(limit); // 如果加分页条件就必须要写OrderBy, 如果这里有OrderBy排序结果就不对, 头疼就头疼在这里... var result = Q.ToList(); // 执行返回
@Y屌丝: 你的 Q 先别 Count(),这样写:Q = Q.Skip(start).Take(limit);
或者:
var Q = (from a in db.table orderby a.num.length,a.num select a).Skip(start).Take(limit);
@程序猿.码农: 相当无奈的解决了
var Q = (from a in db.table orderby a.num.length,a.num); // 这里有查询条件 // 分页 var count = Q.Count();
varresult = (from a in Q orderby a.InvoNO.Length, a.InvoNO select a).Skip(start).Take(limit).ToList(); // 执行返回