Entity Framework 是普遍最推薦的,但是如果遇到要跨 DB 的查詢就麻煩了,這時相信很多人還是習慣自己組 SQL 比較快,然後再用反射將結果轉到自訂義的類號,只是當結果是超多欄位時,反射的效能就會慢了點。
自己也是因為遇到這問題,才開始尋找更好的方法,最後找到黑暗大大的 Dapper 文章,反射效能馬上解決!
簡單說明使用方式:
Step 1:一樣要自行建立類別,Property 欄位名稱大小寫要跟 SQL 查詢結果欄位名稱一樣,Dapper 才能自行對應成功。
Step 2:引用 Dapper 物件後,Connection 物件會多出 .Query<object> method,其中的 object 就是自訂義類別,Connection 查詢後就會自行將結果對應到這個類別裡了。
自己寫了一個查詢物件 DB_ControllerByDapper 供參考:
使用 DB_ControllerByDapper 的範例如下:
DB_ControllerByDapperdb = new DB_ControllerByDapper (DB_ControllerByDapper .DB_ConnectionString.HRConnectionString); // ...略... IEnumerable<SystemAuth> result = db.SelectByDapper(strSQL);
2017/2/19更新:
將 Class DB_ControllerByDapper 改成 Class DBLibByDapper<TEntity>,並跟 DBLib 整合在一起。
參考來源:黑暗執行緒
沒有留言:
張貼留言