首页 新闻 会员 周边 捐助

奇葩的EF问题

0
[已解决问题] 解决于 2014-10-19 23:07
 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用法不对?
泰德的主页 泰德 | 初学一级 | 园豆:6
提问于:2014-10-07 11:28
< >
分享
最佳答案
0

2个orderby当然不对啦,你要.OrderBy().ThenBy()

http://msdn.microsoft.com/zh-cn/library/bb535112.aspx

奖励园豆:5
Cherbim | 菜鸟二级 |园豆:323 | 2014-10-07 11:36

编译并不报错

泰德 | 园豆:6 (初学一级) | 2014-10-07 11:38

@泰德: 编译不报错和结果不符合预期有个毛线的关系。

Cherbim | 园豆:323 (菜鸟二级) | 2014-10-07 11:39

@Cherbim: 

第一个排序:OrderBy(s=>s.state)都没起作用

泰德 | 园豆:6 (初学一级) | 2014-10-07 12:00

@泰德: 

你把第二个orderby去掉看看行不行,求你了。

每天看到这么多人折腾EF,实在是看不下去了,微软虽然没落了,也不带这样的。

爱编程的大叔 | 园豆:30844 (高人七级) | 2014-10-07 12:03

@爱编程的大叔: 

还是不行

泰德 | 园豆:6 (初学一级) | 2014-10-07 12:32

@泰德: 你知道怎么用数据库监视工具或者EF的SQL查看工具看最后生成的SQL语句是什么样的吗?

如果还是不行的话,就可能是你其他的地方代码出错了。

爱编程的大叔 | 园豆:30844 (高人七级) | 2014-10-07 12:43

@爱编程的大叔: 

"数据库监视工具或者EF的SQL查看工具看最后生成的SQL语句"不会用....<_>

泰德 | 园豆:6 (初学一级) | 2014-10-07 12:56
其他回答(2)
1

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的?

爱编程的大叔 | 园豆:30844 (高人七级) | 2014-10-07 11:42

因为一些原因,只能这样写。

支持(0) 反对(0) 泰德 | 园豆:6 (初学一级) | 2014-10-07 11:54
1

query =query.ToList().OrderBy(s=>s.state).OrderBy(s=>s.OperateTime);加个ToList试试。读完数据后,再排序。

悟行 | 园豆:12559 (专家六级) | 2014-10-07 16:33
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册