上一扁使用動態(tài)lambda表達(dá)式來將DataTable轉(zhuǎn)換成實(shí)體,比直接用反射快了不少。主要是首行轉(zhuǎn)換的時候動態(tài)生成了委托。

后面的轉(zhuǎn)換都是直接調(diào)用委托,省去了多次用反射帶來的性能損失。

今天在對SqlServer返回的流對象 SqlDataReader 進(jìn)行處理,也采用動態(tài)生成Lambda表達(dá)式的方式轉(zhuǎn)換實(shí)體。

先上一版代碼

平面設(shè)計(jì)培訓(xùn),網(wǎng)頁設(shè)計(jì)培訓(xùn),美工培訓(xùn),游戲開發(fā),動畫培訓(xùn)

 1 using System; 2 using System.Collections.Generic; 3 using System.Data; 4 using System.Data.Common; 5 using System.Data.SqlClient; 6 using System.Linq; 7 using System.Linq.Expressions; 8 using System.Reflection; 9 using System.Text;10 using System.Threading.Tasks;11 12 namespace Demo113 {14     public static class EntityConverter15     {16         #region17         /// <summary>18         /// DataTable生成實(shí)體19         /// </summary>20         /// <typeparam name="T"></typeparam>21         /// <param name="dataTable"></param>22         /// <returns></returns>23         public static List<T> ToList<T>(this DataTable dataTable) where T : class, new()24   &n