Retraso en la evaluación de LINQ to SQL Manejo de excepciones

votos
3

Tengo una aplicación LINQ a SQL / Unity / ASP.NET MVC / SQL Server alojada en Azure. Estoy usando Lazy Evaluation en todo el sitio. La Aplicación está utilizando una conexión TCP a SQL Server y de vez en cuando obtengo un Se ha producido un error de nivel de transporte al enviar la solicitud al servidor. SqlException.

Bueno, ya que la consulta se materializa cuando se llama más tarde en el código, no puedo simplemente envolver una pieza específica de código con un try / catch.

¿Hay alguna forma de que pueda manejar esta excepción implementando una interfaz o adjuntando un delegado al DataContext?

Publicado el 03/12/2009 a las 21:34
fuente por usuario
En otros idiomas...                            


2 respuestas

votos
3

Si utiliza los resultados de LINQ como está, entonces usted tiene que manejar el error en el código que materializa los datos. Sin embargo, en lugar de simplemente devolver los resultados de la consulta LINQ directamente, se puede envolver en una implementación IEnumerable de su propio diseño, que es libre de implementar cualquier tratamiento de errores que te gusta. De esta manera el código que consume el IEnumerable no tiene que manejar la excepción.

Respondida el 30/01/2010 a las 04:33
fuente por usuario

votos
0

Creo que la única forma de solucionar esto es ajustar el código que está activando (materializando) la llamada al servidor SQL en una captura de prueba.

Respondida el 06/12/2009 a las 13:01
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more