2010-03-16 11 views
9

Sto facendo una selezione di base contro una vista. Sfortunatamente il risultato può essere lento e sto ricevendo errori di timeout a intermittenza. Come posso aumentare il timeout?Come è possibile aumentare il timeout in Linq2Entities?

Utilizzando .NET 3.5, SQL Server 2000, Linq2Entities

sto utilizzando la query molto semplici List<MyData> result = db.MyData.Where(x.Attribute == search).ToList();

fissaggio la query in modo che sia più veloce sul lato DB non è un'opzione qui.

Errore esatto: "Timeout scaduto. Il periodo di timeout è scaduto prima del completamento dell'operazione o il server non risponde."

Aggiornamento: preferirei cambiarlo solo per questa query.

+0

Um, perché non correggere la query, invece? Probabilmente ti manca un indice. –

+1

"Riparare la query in modo che sia più veloce sul lato DB non è un'opzione qui." - Ecco perché ho inserito questa linea. Non è possibile in questo caso. –

risposta

9

È possibile impostare il timeout nel connection string.

Modifica (nuovo): Si scopre che ci sono due diversi concetti di timeout. Il timeout della connessione viene utilizzato per determinare se è possibile stabilire o meno una connessione. La proprietà CommandTimeout nel contesto dell'oggetto controlla il timeout per i comandi. Quindi impostalo su un valore elevato e non dovrebbe influenzare in alcun modo le query a esecuzione ridotta.

+0

È l'unico modo? Preferirei cambiarlo solo per questa query. In altre query preferirei avere un timeout prima, poiché sono molto veloci e una corsa più lunga significherebbe un errore di connessione. –

+0

@Russell Steen: Ho aggiornato la mia risposta con un'altra opzione. –

+0

@Russell Steen: ho aggiornato di nuovo la mia risposta. –

Problemi correlati