DataTableのDataRowは、エンティティリストに回すとエンティティクラスを転送します

1          #region DataTaleエンティティリストスイッチ  
 2          ///  <まとめ>   
3          /// DataTaleエンティティリストに  
 4          ///  </要約>   
。5          ///  <typeParam名= "T"> エンティティ・クラス・タイプ</ typeparam >   
6          ///  ます。<param name = "表"> データテーブル</ PARAM>   
7          ///  <戻り値> リストの<T> </戻り値>   
8          公衆リスト<T> DataTableToModelList <T> データテーブル表)
 。9          {
 10              リスト<T> =一覧新しい新しいリスト<T> ();
11              T T =デフォルト(T);
12              PropertyInfo [] propertypes = NULL ;
13              ストリング TEMPNAME = ストリング.Empty。
14              のforeach(のDataRow行におけるtable.Rows)
 15              {
 16                  、T = Activator.CreateInstance <T> ();
17                  propertypes = t.GetType()GetPropertiesの()。
18                  のforeach(PropertyInfoプロpropertypes)
 19                  {
 20                      TEMPNAME = pro.Name。
21                      もし(table.Columns.Contains(TEMPNAME))
 22                      {
 23                          オブジェクト値= 行[TEMPNAME]。
24                          であれば(value.GetType()== typeof演算(System.DBNull))
 25                          {
 26                              値= NULL ;
27                          }
 28                          pro.SetValue(T、値、NULL );
29                      }
 30                  }
 31                  list.Add(T)。
32              }
 33              リターンリスト。
34は         }
 35          #endregion 
36  
37 [          #region    のDataRowのエンティティ・クラス・スイッチ  
 38が         ///  <まとめ>   
39          /// のDataRowエンティティクラススイッチ  
 40          ///  </要約>   
41である         ///  <typeParam名= "T"> エンティティ・クラス・タイプ</ typeParam>   
42である         ///  <PARAM NAME = "行"> のDataRow </ PARAM>   
43である         ///  <戻り値> T </戻り値>   
44である         公共 T DataRowToModel <T>(のDataRow行)
 45          {
 46  
47              T T = デフォルト(T)。
48              PropertyInfo [] propertypes = NULL ;
49              文字 TEMPNAME = 文字列.Empty。
50              T = Activator.CreateInstance <T> ();
51              propertypes = t.GetType()GetPropertiesの()。
52              のforeach(PropertyInfoプロpropertypes)
 53              {
 54                  TEMPNAME = pro.Name。
55                  であれば(row.Table.Columns.Contains(TEMPNAME))
 56                  {
 57                      オブジェクト値= 行[TEMPNAME]。
58                      もし(value.GetType()== typeof演算(System.DBNull))
 59                      {
 60                          値= NULL ;
61                      }
 62                      pro.SetValue(T、値、NULL );
63                  }
 64              }
 65              リターンT。
66          }
 67          #endregion

学習の記録

おすすめ

転載: www.cnblogs.com/YourDirection/p/12107674.html