Ejemplo n.º 1
0
 public static void Read(object O, TPropertyMapper M, MySqlDataReader reader)
 {
     foreach (TPropertyMapping Map in M)
     {
         if (!reader.IsDBNull(Map.FieldNum))
         {
             Map.PInfo.SetValue(O, Convert.ChangeType(reader[Map.FieldName], Map.PInfo.PropertyType), null);
         }
     }
 }
Ejemplo n.º 2
0
        static List <T> LoadList <T>(String Query) where T : new()
        {
            _command = new MySqlCommand(Query, _conn);

            //Создаем новый список результатов
            List <T> Result = new List <T>();

            if (Connected)
            {
                using (MySqlDataReader reader = _command.ExecuteReader())
                {
                    //Создаем отображение полей в свойства.
                    TPropertyMapper M = ObjectLoader.Test(typeof(T), reader);

                    while (reader.Read())
                    {
                        T A = new T();
                        Result.Add(A);
                        ObjectLoader.Read(A, M, reader);
                    }
                }
            }
            return(Result);
        }
Ejemplo n.º 3
0
        public static TPropertyMapper Test(Type ObjType, MySqlDataReader reader)
        {
            TPropertyMapper MappedFields = new TPropertyMapper();

            //Create fields list
            for (int i = 0; i < reader.FieldCount; i++)
            {
                String fname = reader.GetName(i);

                PropertyInfo f = ObjType.GetProperty(fname);
                if (f != null)
                {
                    MappedFields.Add(new TPropertyMapping {
                        FieldName = fname, FieldNum = i, PInfo = f
                    });
                }
                else
                {
                    Debug.WriteLine("Field '{0}' not mapped to property of type '{1}'", fname, ObjType.ToString());
                }
            }
            Debug.WriteLine("Mapped {0} of {1} properties  type '{2}'", MappedFields.Count, ObjType.GetProperties().Length, ObjType.ToString());
            return(MappedFields);
        }