预处理通过IDataReader提取的数据,然后将其返回给其他代码

时间:2018-07-13 15:56:53

标签: c# .net

在让其他代码处理此数据之前,我需要对通过.NET IDataReader (从数据库返回)获取的数据进行整理。有任何建议的模式/现有代码吗?

我在想,我应该实现自己的IDataReader,封装“源IDataReader”,并且当用户在读取器上调用Read时,在返回数据之前先对检索到的数据进行按摩。

1 个答案:

答案 0 :(得分:1)

我可能会做这样的事情。与通用阅读器相反,其他代码可能会获得强类型对象。另外,由于数据读取器是可流式传输的,因此您还可以通过重新调整IEnumerable来流式传输对象。这样一来,您就可以在仍在读取数据的情况下对其进行处理(如果适当或必要,甚至可以并行化操作)。

GetYourObjectFromDrFunction()显然可以进行所需的按摩,并生成YourObject的实例。

public IEnumerable<YourObject> GetEm()
{
    // assume we have your IDataReader named dr

    while (dr.Read())
    {
        yield return GetYourObjectFromDrFunction(dr);
    }
}