0

我目前有 2 个包装类来分别包含 DataReader 和 DataRow。包装类实现相同的接口 IIndexer。之所以使用它们,是因为我有很多方法可以对列进行索引以获取值:

这是示例: 如何使用相同的代码从 DataRow 或 DataReader 中读取?

现在我需要插入语句的第三个选项。现在没有 DataTables 来获取 DataRow,也不需要从 Db 中读取。

这可以通过使用 IndexerWrapper(或 DictionaryWrapper)来完成:

public class IndexerWrapper : IIndexer
{
    private readonly Dictionary<string, object> _indexer;

    public DataReaderWrapper(Dictionary<string, object> indexer)
    {
        _indexer = indexer;
    }

    public object this[string index]
    {
        get { return _indexer[index]; }
    }
}

我已经有了数据库表的列信息,所以我会循环列并将列名添加为键。

有更好的方法吗?这不是那么方便,因为我必须初始化它。性能呢?这可能会在将来用于大质量,现在为每个项目存储列名。与 DataRows 的集合相比,真的有开销吗?

谢谢-马蒂

4

0 回答 0