Вы можете просто разыграть System.Data.IDataReader
до System.Data.Common.DbDataReader
using (System.Data.IDataReader IReader = ICommand.ExecuteReader())
{
if (((System.Data.Common.DbDataReader)IReader).HasRows)
{
//do stuff
}
} // End Using IReader
Это чистое зло, но оно (обычно) работает;)
(при условии, что ваш экземпляр IDataReader
реализован пользовательским поставщиком ADO.NET, а не каким-то вашим собственным глупым классом, который просто реализует IDataReader
вместо производного от DbDataReader
[который реализует IDataReader
]) .