對于Dapper是一個輕量級的資料通路架構,而需要使用者去自己做SQL,它,隻是一個資料通路者!
對些,Dapper推出了Contrib擴充包,它可以友好的讓開發人員使用linq,而不需要寫SQL,但在使用時要注意,你的增,删,改,單表查詢是可以用它的,但對于多表的join操作就不要用了,因為它不會像linq2sql和ef那樣進行牛X的翻譯,它會将select * from tables這種語句發到資料庫,結果可想而知!
相同的代碼dapper和ef發到資料庫是截然不同的:
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5COyUjNwkDNyAjMtkDM1cDM0MzMxEjM5AzNxAjMtgzM1gTMx8CX5AzNxAjMvwFOzUDOxEzLcd2bsJ2Lc12bj5ycn9Gbi52YucTMwIzcldWYtl2Lc9CX6MHc0RHaiojIsJye.png)
dapper這樣發過去的
而通過EF做多表Join時,被發到資料庫端的語句是
最後結論,我想不用我再重複了吧!
記得,不要用Dapper.contrib做Linq join操作!