使用一个函数从DataRow或DataReader中提取

Nat*_*e32 6 .net c# sql datareader datarow

我正在寻找一种解决方案,用于在使用DataRow和仅具有一个功能(或一个基本功能)的DataReader时如何从数据库中提取数据.

我的问题源于这样一个事实:有时候我需要一个DataReader,有时我需要一个DataTable/DataRow但是为了从这些对象中提取数据,我需要两个单独的数据访问方法,因为它们不共享一个接口.

基本上当我的数据库结构发生变化时,我不想进入并在多个函数中编写以下数据检索代码:

someValue = dr["someValue"]
Run Code Online (Sandbox Code Playgroud)

它是相同的语法并做同样的事情所以我想要一个共享该功能的函数,无论我是使用DataReader还是DataTable/DataRow从数据库中提取数据.

Era*_*nga 5

您可以在DataTable类中使用CreateDataReader方法通过DbDataReader基类访问数据.因此,您可以更改实现但保留映射.

public List<MyType> GetMyTypeCollection(DbDataReader reader)
{
//mapping code here
}
Run Code Online (Sandbox Code Playgroud)

如果你可以移动到你不必手动映射的ORM会更好.

看看这款微型ORM Dapper