private object CreateDictionaryObject(IDataReaderAdapter dataReaderAdapter)
        {
            var result = new Dictionary <string, object>();

            for (var i = 0; i < dataReaderAdapter.FieldCount; i++)
            {
                var value = dataReaderAdapter[i];
                if (value == DBNull.Value)
                {
                    value = null;
                }

                result[dataReaderAdapter.GetName(i)] = value;
            }

            return(result);
        }
Ejemplo n.º 2
0
        private object CreateDynamicObject(IDataReaderAdapter dataReaderAdapter)
        {
            var result           = new ExpandoObject();
            var dictionaryResult = (IDictionary <string, object>)result;

            for (var i = 0; i < dataReaderAdapter.FieldCount; i++)
            {
                var value = dataReaderAdapter[i];
                if (value == DBNull.Value)
                {
                    value = null;
                }

                dictionaryResult[dataReaderAdapter.GetName(i)] = value;
            }

            return(result);
        }
        private object CreateSingleInstance(IDataReaderAdapter dataReaderAdapter, Type instanceType)
        {
            var instance       = Activator.CreateInstance(instanceType);
            var typeProperties = instanceType.GetProperties(BindingFlags.Public | BindingFlags.Instance);

            for (var i = 0; i < dataReaderAdapter.FieldCount; i++)
            {
                var columnName = dataReaderAdapter.GetName(i);
                var property   = GetPropertyInfo(typeProperties, columnName);

                if (property != null)
                {
                    var value          = dataReaderAdapter.GetValue(i);
                    var convertedValue = _objectConverter.ChangeType(property.PropertyType, value);
                    property.SetValue(instance, convertedValue, null);
                }
            }

            return(instance);
        }