Ejemplo n.º 1
0
        public override object Map(DbDataReader dataReader, RowMapperContext context)
        {
            if (context.Instance == null)
            {
                context.Instance = context.PocoData.CreateObject(dataReader);
                if (context.Instance == null)
                {
                    throw new Exception(string.Format("Cannot create POCO '{0}'. It may have no parameterless constructor or be an interface or abstract class without a Mapper factory.", context.Type.FullName));
                }
            }
            else
            {
                _mappingOntoExistingInstance = true;
            }

            _mapPlan(dataReader, context.Instance);

            var result = context.Instance as IOnLoaded;

            if (result != null)
            {
                result.OnLoaded();
            }

            return(context.Instance);
        }
Ejemplo n.º 2
0
        public override object Map(DbDataReader dataReader, RowMapperContext context)
        {
            if (context.Instance == null)
            {
                context.Instance = context.PocoData.CreateObject(dataReader);
                if (context.Instance == null)
                    throw new Exception(string.Format("Cannot create POCO '{0}'. It may have no parameterless constructor or be an interface or abstract class without a Mapper factory.", context.Type.FullName));
            }
            else
            {
                _mappingOntoExistingInstance = true;
            }

            object[] values = new object[dataReader.FieldCount];
            dataReader.GetValues(values);
            _mapPlan(dataReader, values, context.Instance);

            var result = context.Instance as IOnLoaded;
            if (result != null)
            {
                result.OnLoaded();
            }

            return context.Instance;
        }
Ejemplo n.º 3
0
        public override object Map(DbDataReader dataReader, RowMapperContext context)
        {
            if (dataReader.IsDBNull(0))
                return null;

            return _converter(dataReader.GetValue(0));
        }
Ejemplo n.º 4
0
        public override object Map(DbDataReader dataReader, RowMapperContext context)
        {
            if (context.Instance == null)
            {
                context.Instance = context.PocoData.CreateObject(dataReader);
                if (context.Instance == null)
                {
                    throw new Exception(string.Format("Cannot create POCO '{0}'. It may be an interface or abstract class without a Mapper factory.", context.Type.FullName));
                }
            }
            else
            {
                _mappingOntoExistingInstance = true;
            }

            object[] values = new object[dataReader.FieldCount];
            dataReader.GetValues(values);
            _mapPlan(dataReader, values, context.Instance);

            var result = context.Instance as IOnLoaded;

            if (result != null)
            {
                result.OnLoaded();
            }

            return(context.Instance);
        }
Ejemplo n.º 5
0
        public override object Map(DbDataReader dataReader, RowMapperContext context)
        {
            if (dataReader.IsDBNull(0))
            {
                return(null);
            }

            return(_converter(dataReader.GetValue(0)));
        }
Ejemplo n.º 6
0
        public override object Map(DbDataReader dataReader, RowMapperContext context)
        {
            var arrayType = context.Type.GetElementType();
            var array     = Array.CreateInstance(arrayType, _posNames.Length);

            for (int i = 0; i < _posNames.Length; i++)
            {
                if (!dataReader.IsDBNull(_posNames[i].Pos))
                {
                    array.SetValue(dataReader.GetValue(_posNames[i].Pos), i);
                }
            }

            return(array);
        }
Ejemplo n.º 7
0
        public override object Map(DbDataReader dataReader, RowMapperContext context)
        {
            var arrayType = context.Type.GetElementType();
            var array = Array.CreateInstance(arrayType, _posNames.Length);

            for (int i = 0; i < _posNames.Length; i++)
            {
                if (!dataReader.IsDBNull(_posNames[i].Pos))
                {
                    array.SetValue(dataReader.GetValue(_posNames[i].Pos), i);
                }
            }

            return array;
        }
Ejemplo n.º 8
0
        public override object Map(DbDataReader dataReader, RowMapperContext context)
        {
            IDictionary <string, object> target = new Dictionary <string, object>(StringComparer.OrdinalIgnoreCase);

            if (context.Type == typeof(object))
            {
                target = new PocoExpando();
            }

            for (int i = 0; i < _posNames.Length; i++)
            {
                var converter = context.PocoData.Mapper.Find(x => x.GetFromDbConverter(typeof(object), dataReader.GetFieldType(_posNames[i].Pos))) ?? (x => x);
                target.Add(_posNames[i].Name, dataReader.IsDBNull(_posNames[i].Pos) ? null : converter(dataReader.GetValue(_posNames[i].Pos)));
            }

            return(target);
        }
Ejemplo n.º 9
0
 public abstract object Map(DbDataReader dataReader, RowMapperContext context);
Ejemplo n.º 10
0
 public abstract object Map(DbDataReader dataReader, RowMapperContext context);