C#Datetableをエンティティリストセットインスタンスに変換

1368 ワード

/// Datetable     list   
 public List ConvertDataTableToList(DataTable dt){
            //         
            List models = new List();

            string tempName = "";

            foreach (DataRow dr in dt.Rows)
            {
                Model model = new Model();
                //                 
                PropertyInfo[] propertys = model.GetType().GetProperties();
                foreach (PropertyInfo pi in propertys)//     Model      
                {
                    tempName = pi.Name;  //   Model      

                    if (dt.Columns.Contains(tempName)) //   DataTable         
                    {
                        //    Model          set      
                        if (!pi.CanWrite) continue;
                        object value = dr[tempName];//  DataTable       
                        if (value != DBNull.Value)//             ,DBNull.Value,               ,DBNull.Value                ,        null 
                        {  
                            pi.SetValue(model, value, null);//SetValue   : https://blog.csdn.net/weixin_42263618/article/details/103748279
                        }

                    }
                }
                models.Add(model);
            }
            return models;
        }


    }