将数据从IDbReader映射到其等效的运行时类型

时间:2016-01-22 20:48:54

标签: c# .net sql-server database oracle

我已经找到了一种方便的方法来在给定列名的情况下读取OraclaDataReader中的列。目前,我使用的是:

int integer = (int)reader["Column1"];
int? nullableInt = reader.IsDBNull("Column2") ? null : (int?) reader["Column2"];

我的问题是:是不是可以创建一个通用的扩展方法来处理所有这些麻烦?像reader.ReadInteger(" Column"),这样的东西也可用于可空类型?

1 个答案:

答案 0 :(得分:0)

是的,扩展类应该这样做。 https://msdn.microsoft.com/en-us/library/bb311042.aspx 但是当你连续1000次这样做时,这并不是很快。

internal static class OraclaDataReaderExtension
{
    public static T Read<T>(this OraclaDataReader dbReader, string columnName)
    {
        return dbReader.IsDBNull(columnName) ? default(T) : (T)dbReader[columnName];
    }
}