先放測試結果圖,測試的方法是拷貝了老趙的一個簡單的性能計數器: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,也會在這個地址更新