SubSonic3.0使用外连接查询时查询不出数据的问题修改

  今天在开发时,要使用到外连接查询,如图

  SubSonic3.0使用外连接查询时查询不出数据的问题修改

  老是查不出数据,所以就追踪了一下代码,发现查询后生成的SQL语句变成了内连接了,真是晕

  SubSonic3.0使用外连接查询时查询不出数据的问题修改

  然后继续Debug,发现原来SqlQuery类在调用LeftInnerJoin函数时传入的Join.JoinType.LeftInner参数,并没有被CreateJoin函数使用上,如下图

  SubSonic3.0使用外连接查询时查询不出数据的问题修改

  所以赶快修改为type,见图

  SubSonic3.0使用外连接查询时查询不出数据的问题修改

  心想应该可以了吧......继续执行程序,发现还是没有查询出数据来~~~真是郁闷......继续Debug,发现SQL语句还是有问题,见图

  SubSonic3.0使用外连接查询时查询不出数据的问题修改

  语句中多了一个INNER,所以查询直接爆错退出了,继续跟踪Debug,但是找来找去都没有发现在哪里组合语句的,@_@

  认真研究了一下,发现是从Join类的GetJoinTypeValue函数返回连接字符串的,如下图

  SubSonic3.0使用外连接查询时查询不出数据的问题修改

  就尝试修改了一下返回的字串,见图

  SubSonic3.0使用外连接查询时查询不出数据的问题修改

  最后执行程序,生成的SQL语句终于正常了

  SubSonic3.0使用外连接查询时查询不出数据的问题修改

  这个Bug其实并不是很复杂,只要多使用Debug跟踪,多尝试修改(就算改错了也无所谓),才能找出问题所在

  

  本文章为原创内容,转载请保留下面信息。

  发表本编内容,只要主为了和大家共同学习共同进步,有兴趣的朋友可以加加Q群:SubSonic3.0学习群(327360708)或Email给我(1654937#qq.com),大家一起探讨,由于本人工作很繁忙,如果疑问请先留言,回复不及时也请谅解。

  想了解更多SubSonic3.0的相关问题,请观注博客:http://www.cnblogs.com/EmptyFS/

上一篇:bzoj 1044 [HAOI2008]木棍分割——前缀和优化dp


下一篇:别人不会给你说的---C语言中数组名和指针的区别 及 sizeof用法