2011-12-09 3 views
14

Recientemente comencé a usar LinqPad y compré la opción Autocompletar y realmente me encanta. ¡Este es un producto excelente!¿Cómo se establece el tiempo de espera del comando en Linqpad?

Quería preguntar si hay una forma de controlar el tiempo de espera de los comandos que se utilizan al consultar una base de datos de SQL Server en LinqPAD (¿estoy usando instrucciones C#)? No puedo ver dónde tenemos acceso a la cadena de conexión real, y tengo algunas consultas grandes para informar que están expirando. Parece que el tiempo de espera está codificado en 30 segundos.

¡Gracias de antemano por cualquier ayuda!

Respuesta

15

He realizado consultas que han llevado minutos y nunca ha tenido un tiempo de espera de comando. Dicho esto, aquí es cómo usted lo cambie ...


Todo el trabajo se realiza dentro de un UserQuery. El CommandTimeout es una propiedad de eso.

this.CommandTimeout = 60; 

Tener un vistazo a todas las propiedades bajo this. Le da una buena idea de algunas de las cosas que puede hacer.

+0

GRACIAS! (¡Especialmente para la respuesta casi inmediata! (¡Patalearme por no haber comprobado 'esto'!) (¡Dado que lo hago un millón de veces al día en mi propio código!) ¡De todos modos, funcionó perfectamente! – blairh

+0

Es una buena característica , No estoy seguro de por qué no está mejor documentado. – DaveShaw

+0

@ user1090088 - ¿Te importaría aceptar la respuesta según el estilo SO: http://stackoverflow.com/faq#howtoask? Gracias. – DaveShaw

7

Como se mencionó en @DaveShaw's answer al consultar una base de datos de SQL Server en LINQPad mediante una conexión de 'regular', puede utilizar:

this.CommandTimeout = 60 

Sin embargo, esta propiedad no está disponible cuando LinqPad connects to DB using an EF-library. Usando this.CommandTimeout resultados en:

'UserQuery' no contiene una definición para 'CommandTimeout' y ningún método de extensión 'CommandTimeout' aceptar un primer argumento de tipo 'UserQuery' se pudo encontrar (pulse F4 para añadir un uso directiva o conjunto de referencia)

Algunos desconcertante y esta respuesta about EF time-outs in general me llevó a utilizar esto en un EF-conexión:

(this as IObjectContextAdapter).ObjectContext.CommandTimeout = 60; 
Cuestiones relacionadas