【发布时间】:2016-10-29 08:19:54
【问题描述】:
我试图找到一个由 SqlDataReader 实现并公开 HasRows、Read() 和 NextResult() 的接口。我需要这些属性和方法,因为我需要读取存储过程返回的多个结果集 (as mentioned here)。目前我正在使用 System.Data.IDataReader 公开 Read() 和 NextResult() 但不公开 HasRows 属性。
为了代码的可测试性,我需要一个接口,这样耦合就会丢失。
对这样的界面有任何帮助吗?或者我需要从头开始编写接口的抽象层?
【问题讨论】:
-
没有这个接口。你应该自己写。
-
为什么不在自己的接口中为 Read() 和 NextResult() 实现 IDataReader,然后为 hasRows 实现自己的自定义接口,这将减少您的工作量
-
IDataReader本身很好,因为IDataReader.NextResult()返回一个bool,所以你可以做do { ... } while (reader.NextResult());例如参见this answer。
标签: c# sql testing sqldatareader