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)); }
public void WriteValue(IValueWriter valueWriter, T value) { var dataReader = new OverrideDbDataReader(value.CreateDataReader()); var toArrayReader = new TableToArrayReader(dataReader); valueWriter.WriteArray(toArrayReader); }