.net 利用Emit將object轉爲DbParameter,DataTable轉爲List<>

  先放測試結果圖,測試的方法是拷貝了老趙的一個簡單的性能計數器:CodeTimer。發現速度仍是比利用反射來獲取快了2倍左右的,將object轉爲DbParameter的反射方法我沒寫。html

                                                              

在開發中,因爲沒有用第三方的orm框架,致使和數據庫交互這裏須要寫不少的代碼來拼接DbParameter。還有就是須要利用反射將DataTable轉爲List<>,在性能上會有點偏低。git

因此我就花了幾個禮拜時間看了下Emit,而後簡單的實現了下一些本身經常使用的功能。你們若是以爲能夠,能夠直接下載代碼拿去使用,若是發現哪裏不對的或者有更好的實現方法的,歡迎指正與討論。github

使用說明:數據庫

   //將Object轉爲paramList,SqlParameter是指DbParameter類型,三個參數,第一個參數是object,第二個參數是參數符號(@,:,?),第三個參數是前綴框架

   var paramList = DbParamUtil.ToDbParam<SqlParameter>(new User(), "@", "w_");//post

  //將table轉爲對應List<T>, tableInstance是你須要轉換的table,User是你要轉換的實體類型性能

   tableInstance.ToList<User>();測試

  //將DataRow轉爲實體,dataRowInstance是你須要轉換的DataRow,User是你要轉換的實體類型url

   dataRowInstance.ToEntity<User>();orm

源碼下載:

  github地址:https://github.com/yjqGitHub/EmitConvert.git

 後期若是有時間,且實現了ioc,也會在這個地址更新

相關文章
相關標籤/搜索