Esempio n. 1
0
            protected override object MapInternal(Reflection.InitContext initContext)
            {
                FbDataReader dr = initContext.SourceObject as FbDataReader;

                // Fb's SP returns single row with nulls if selected object doesn't exists
                // so for all DBNull's (null) should be returned, instead of object instance
                //
                if (dr != null)
                {
                    int i = dr.FieldCount;
                    while (--i >= 0)
                    {
                        if (!dr.IsDBNull(i))
                        {
                            break;
                        }
                    }

                    // All field are DBNull.
                    //
                    if (i < 0)
                    {
                        return(null);
                    }
                }
                return(base.MapInternal(initContext));
            }
Esempio n. 2
0
        protected override void MapInternal(Reflection.InitContext initContext, IMapDataSource source, object sourceObject, IMapDataDestination dest, object destObject, params object[] parameters)
        {
            FullObjectMapper mapper     = (FullObjectMapper)initContext.ObjectMapper;
            IDataReader      dataReader = (IDataReader)sourceObject;

            //int[] index = GetIndex(source, dest);
            //IValueMapper[] mappers = GetValueMappers(source, dest, index);

            //foreach (var valueMapper in mappers)
            //{

            //}

            InitSchema(dataReader);

            if (mapper.ColParent)
            {
                FillObject(mapper, dataReader, destObject);
                while (dataReader.Read())
                {
                    destObject = FillObject(destObject, mapper, dataReader);
                }
            }
            else
            {
                FillObject(mapper, dataReader, destObject);
            }
        }