EF架構~Dapper.Contrib不(bu)能(neng)將Linq翻譯好發到數據庫,所以請不(bu)要(yao)用它
對于Dapper是(shi)一個輕量(liang)級的數據訪(fang)問框架,而需要使用者去(qu)自己做SQL,它,只是(shi)一個數據訪(fang)問者!
對(dui)些,Dapper推出(chu)了Contrib擴展包(bao),它可以(yi)友好的(de)(de)讓開發人(ren)員使用(yong)linq,而不(bu)需要(yao)寫SQL,但(dan)在使用(yong)時要(yao)注意,你的(de)(de)增,刪(shan),改,單表查(cha)詢是可以(yi)用(yong)它的(de)(de),但(dan)對(dui)于多表的(de)(de)join操作(zuo)就不(bu)要(yao)用(yong)了,因(yin)為它不(bu)會(hui)像linq2sql和(he)ef那樣進行牛X的(de)(de)翻(fan)譯(yi),它會(hui)將select * from tables這種語句發到數(shu)據(ju)庫,結(jie)果(guo)可想而知!
相同的代碼dapper和ef發(fa)到數據庫是(shi)截然不同的:

dapper這樣(yang)發過去的

而通過EF做多(duo)表Join時,被發到(dao)數(shu)據(ju)庫端的語句(ju)是

最后結論,我想不用我再重復了吧!
記(ji)得,不要(yao)用Dapper.contrib做Linq join操(cao)作!