c# - 在将通过 IDataReader 获取的数据返回给其他代码之前对其进行预处理
问题描述
在让其他代码处理这些数据之前,我需要对通过 .NET IDataReader(从数据库返回)获取的数据进行按摩。是否有任何推荐的模式/现有代码可用?
我在想,我应该实现我自己的 IDataReader,封装“源 IDataReader”,当用户在我的阅读器上调用 Read 时,在返回之前按摩检索到的数据。
解决方案
我可能会做这样的事情。与通用阅读器相反,其他代码可以获得强类型对象。此外,由于数据读取器是可流式传输的,因此您还可以通过重新调整 IEnumerable 将对象流式传输出去。这将允许您在数据仍在读取时对其进行处理(如果适当或必要,甚至可以并行化操作)。
GetYourObjectFromDrFunction() 显然会执行您需要的按摩并生成 YourObject 的实例。
public IEnumerable<YourObject> GetEm()
{
// assume we have your IDataReader named dr
while (dr.Read())
{
yield return GetYourObjectFromDrFunction(dr);
}
}
推荐阅读
- python - 如何有条件地获取 DataFrame 的行
- c# - EF Core 3:CLR 属性“数字”不能添加到实体类型“CHSIMTBase”,因为它是在 CLR 类型“合同”上声明的
- php - 从多维数组中提取特定数组
- node.js - How to maintain two different versions of NPM and Node? How can I make an Angular installation specific to one project only?
- django - 为每个单独的用户制作一个独特的表格
- android - 当应用程序被杀死时,Android AlarmManager 不会触发
- python - 从列表元素对转换为邻接列表?
- postman - 访问资源时出错:请输入扇区值
- zoho - 基于 deluge 中的多选下拉菜单从 zoho creator 搜索记录
- javascript - 使用 javascript 启用 vb.net 复选框列表时出现问题