【问题标题】:Fastest way to read IDbConnection.Command data读取 IDbConnection.Command 数据的最快方法
【发布时间】:2012-05-17 09:20:51
【问题描述】:

我现在正在使用

OleDbDataAdapter objDataReader = new OleDbDataAdapter();
objDataReader.SelectCommand = myCommand;
objDataReader.Fill(myDataTable);

但我觉得 DataTable 对象是一个庞大的对象,我想知道是否有一种方法可以让我自己的对象发送到数据读取器,或者使用更轻的对象?

【问题讨论】:

  • 不是一个真正的答案,但可能值得指出的是,这些方法并没有真正与每个对象一起发送。
  • DataTable 变得臃肿只有一个原因:用成千上万的查询结果填充它。这不是 DT 问题,这是查询问题。
  • 好吧,鉴于 DT 有一个对象来识别每一列,它可以有很多属性,比如自动增量,数据表甚至可以有主键等,它比一个普通的对象要大得多,它的属性来自桌子。

标签: c# ado.net dataset


【解决方案1】:

但我觉得 DataTable 对象是一个巨大的臃肿对象,我想 知道是否有办法让我自己的对象发送到数据 阅读器,还是使用较轻的阅读器?

您调用 DataTableLoad 方法以使用 IDataReader 将数据加载到其中。你说反了,这不是真的。

就 DataReader 而言,这实际上非常快。如果您不喜欢使用 DataTable,您可以查看其他替代方案,例如 Entity Framework,或者通过像这样迭代 DataReder 来简单地补充您自己的自定义业务对象:

while (reader.Read())
{
   //Hydrate your objects here
}

【讨论】:

  • 谢谢!这就是我所需要的。
猜你喜欢
  • 2013-08-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-24
  • 1970-01-01
  • 2014-09-26
  • 2011-08-11
  • 2011-05-04
相关资源
最近更新 更多