Al usar llamar al método SqlCommand.ExecuteReader()
, ReSharper me dice que tengo una posible excepción de NullReference cuando uso el objeto SqlDataReader después.¿Cuándo SqlCommand.ExecuteReader() devolverá nulo?
Así, con el siguiente código:
using (SqlConnection connection = GetConnection())
{
using (SqlCommand cmd = connection.CreateCommand())
{
cmd.CommandText = ; //snip
using (SqlDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
//snip
}
}
}
}
El while (reader.Read())
línea está subrayado.
Mi pregunta es cuando el objeto del lector alguna vez sería nulo? Nunca me he encontrado y la documentación no menciona que podría ser. ¿Debo verificar si es nulo o es seguro ignorarlo?
¿Y por qué ReSharper cree que podría ser nulo, cuando, por ejemplo, me permite usar el SqlCommand sin recomendarlo, se comprueba si no tiene nulo? Supongo que hay un atributo en el método ExecuteReader.