Exemplo n.º 1
0
        /// <summary>
        /// Parse the data
        /// </summary>
        protected TData Parse <TData>(IDataReader rdr, IDbProvider provider)
        {
            var     tableMapping = TableMapping.Get(typeof(TData));
            dynamic result       = Activator.CreateInstance(typeof(TData));

            // Read each column and pull from reader
            foreach (var itm in tableMapping.Columns)
            {
                try
                {
                    object value = provider.ConvertValue(rdr[itm.Name], itm.SourceProperty.PropertyType);
                    itm.SourceProperty.SetValue(result, value);
                }
                catch (Exception e)
                {
                    throw new MissingFieldException(tableMapping.TableName, itm.Name);
                }
            }
            return(result);
        }