public override bool Read() { CheckState(); if (IsCommandBehavior(CommandBehavior.SchemaOnly)) { return(false); } else if (IsCommandBehavior(CommandBehavior.SingleRow) && _position != StartPosition) { return(false); } else { using (var explicitCancellation = ExplicitCancellation.Enter(CancellationToken.None, _command.Cancel)) { _row = _command.Fetch(); if (_row != null) { _position++; return(true); } else { _eof = true; return(false); } } } }