var query1 = from s in db.MemberInfo where s.Member_Name == searchString select s; var query2 =from s in db.MemberInfo where s.Member_RealName == searchString select s; var query = requests1.Union(requests2); query =query.OrderBy(s=>s.state).OrderBy(s=>s.OperateTime);
结果 query =query.OrderBy(s=>s.state).OrderBy(s=>s.OperateTime);竟然不起作用,还是没有按要求排序。
这个是不是个Bug?还是我用EF用法不对?
2个orderby当然不对啦,你要.OrderBy().ThenBy()
http://msdn.microsoft.com/zh-cn/library/bb535112.aspx
编译并不报错
@泰德: 编译不报错和结果不符合预期有个毛线的关系。
@Cherbim:
第一个排序:OrderBy(s=>s.state)都没起作用
@泰德:
你把第二个orderby去掉看看行不行,求你了。
每天看到这么多人折腾EF,实在是看不下去了,微软虽然没落了,也不带这样的。
@爱编程的大叔:
还是不行
@泰德: 你知道怎么用数据库监视工具或者EF的SQL查看工具看最后生成的SQL语句是什么样的吗?
如果还是不行的话,就可能是你其他的地方代码出错了。
@爱编程的大叔:
"数据库监视工具或者EF的SQL查看工具看最后生成的SQL语句"不会用....<_>
var query = from s in db.MemberInfo
where s.Member_name=searchString or s.Member_RealName=searchString
order by s.state, s.OperateTime
select s;
一句话的事,非整出那么多妖蛾子来。
难道你们公司是按照代码行数来计算KPI的?
因为一些原因,只能这样写。
query =query.ToList().OrderBy(s=>s.state).OrderBy(s=>s.OperateTime);加个ToList试试。读完数据后,再排序。