天天看點

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跟蹤,多嘗試修改(就算改錯了也無所謂),才能找出問題所在

    本文轉自 AllEmpty 部落格園部落格,原文連結:http://www.cnblogs.com/EmptyFS/p/3335311.html,如需轉載請自行聯系原作者