Пример #1
0
        private T ReadScalar <T>(DbDataReader dbDataReader)
        {
            if (typeof(T).IsAssignableFrom(dbDataReader.GetFieldType(0)))
            {
                if (dbDataReader.Read())
                {
                    return((T)dbDataReader[0]);
                }

                return(default(T));
            }

            var overrideDbDataReader = new OverrideDbDataReader(dbDataReader);

            var dataWriter = RWHelper.CreateWriter <T>();

            dataWriter.Initialize();

            if (dataWriter is IDataWriter <int> )
            {
                RWHelper.Copy(overrideDbDataReader, dataWriter);

                return(RWHelper.GetContent <T>(dataWriter));
            }

            if (overrideDbDataReader.Read())
            {
                RWHelper.Copy((IDataReader <string>)overrideDbDataReader, dataWriter);

                return(RWHelper.GetContent <T>(dataWriter));
            }

            return(default(T));
        }
Пример #2
0
        public void WriteValue(IValueWriter valueWriter, T value)
        {
            var dataReader = new OverrideDbDataReader(value.CreateDataReader());

            var toArrayReader = new TableToArrayReader(dataReader);

            valueWriter.WriteArray(toArrayReader);
        }