在让其他代码处理此数据之前,我需要对通过.NET IDataReader (从数据库返回)获取的数据进行整理。有任何建议的模式/现有代码吗?
我在想,我应该实现自己的IDataReader,封装“源IDataReader”,并且当用户在读取器上调用Read时,在返回数据之前先对检索到的数据进行按摩。
答案 0 :(得分:1)
我可能会做这样的事情。与通用阅读器相反,其他代码可能会获得强类型对象。另外,由于数据读取器是可流式传输的,因此您还可以通过重新调整IEnumerable来流式传输对象。这样一来,您就可以在仍在读取数据的情况下对其进行处理(如果适当或必要,甚至可以并行化操作)。
GetYourObjectFromDrFunction()显然可以进行所需的按摩,并生成YourObject的实例。
public IEnumerable<YourObject> GetEm()
{
// assume we have your IDataReader named dr
while (dr.Read())
{
yield return GetYourObjectFromDrFunction(dr);
}
}