Tengo un método que llama a una función SQLServer para realizar una búsqueda de texto libre en una tabla. Esa función ocasionalmente en la primera llamada dará como resultado una SQLException: "Tiempo de espera agotado para la cadena de consulta de texto completo". Entonces, por lo general, quiero volver a intentar la solicitud porque tendrá éxito en las solicitudes posteriores. ¿Qué es un buen estilo para estructurar la lógica de reintento? Por el momento tengo el siguiente:Qué es un buen estilo de codificación C# para capturar SQLException y reintentar
var retryCount = 0;
var results = new List<UserSummaryDto>();
using (var ctx = new UsersDataContext(ConfigurationManager.ConnectionStrings[CONNECTION_STRING_KEY].ConnectionString))
{
for (; ;)
{
try
{
results = ctx.SearchPhoneList(value, maxRows)
.Select(user => user.ToDto())
.ToList();
break;
}
catch (SqlException)
{
retryCount++;
if (retryCount > MAX_RETRY) throw;
}
}
}
return results;
En realidad, es conceptualmente simple y debería funcionar. Aunque advertiría contra el uso excesivo de Var. A veces, un int es solo un int. – MAW74656
'On Currículum de reanudación siguiente' en Visual Basic fue conceptualmente simple, eso no lo hizo una buena idea. – MusiGenesis
@ MAW74656: He votado su comentario sobre la base de la observación 'var'. IMO, el compilador debe prohibir su uso donde oculta el tipo de objeto, como lo hace aquí. – MusiGenesis