Linq實(shí)現(xiàn)Left join
本文向大家介紹linq實(shí)現(xiàn)Left join,可能好多人還不了解Left join,沒有關(guān)系,看完本文你肯定有不少收獲,希望本文能教會(huì)你更多東西。
在linq中沒有 left join,所以當(dāng)希望用到時(shí),會(huì)比較范難。以下是linq實(shí)現(xiàn)Left join的方法。
students 表中有 字段 No,Name.book 表中有 bookName,borroeStudentNo(借書人的編號(hào))現(xiàn)在要得到所有書籍信息,包括書的借閱人的信息。這里就需要left join。
- var sqlresult = from b in book
- joins in students on b.borroeStudentNoequalss.No intobs
- from bb in bs.DefaultIfEmpty()
- select new
- {
- b.bookName,
- s.No,
- s.Name
- };
***linq實(shí)現(xiàn)Left join
最近有發(fā)現(xiàn)了個(gè)問題,當(dāng)查詢?cè)词莾蓚€(gè)List的時(shí)候,上面的做法會(huì)在當(dāng)右邊的結(jié)果為空的時(shí)候報(bào)錯(cuò)。也就是上面的書的借閱人為空的時(shí)候。強(qiáng)調(diào):查詢?cè)词莾蓚€(gè)List的時(shí)候,而不是數(shù)據(jù)表
更改為:
- select new
- {
- b.bookName,
- SNo = s==null?"":s.No,
- SName = s==null?"":s.Name
- };
【編輯推薦】