2010-03-16 6 views
9

Ich mache eine grundlegende Auswahl gegen eine Ansicht. Leider kann das Ergebnis langsam sein und ich bekomme zeitweise Fehler bei der Zeitüberschreitung. Wie kann ich das Zeitlimit erhöhen?Wie können Sie das Zeitlimit in Linq2Entities erhöhen?

2000 .NET 3.5, SQL Server, Linq2Entities

Ich verwende die sehr einfache Abfrage List<MyData> result = db.MyData.Where(x.Attribute == search).ToList();

die Abfrage Fixing so dass es schneller ist auf der Seite DB ist nicht hier Option.

Exakter Fehler: "Timeout abgelaufen. Das Zeitlimit ist abgelaufen, bevor der Vorgang abgeschlossen wurde oder der Server reagiert nicht."

Update: Ich würde es vorziehen, nur für diese eine Abfrage zu ändern.

+0

Ähm, warum nicht die Abfrage reparieren, stattdessen? Vermutlich fehlt dir ein Index. –

+1

"Die Abfrage zu reparieren, so dass es auf der DB-Seite schneller ist, ist hier keine Option." - Deshalb habe ich diese Zeile dort eingefügt. Das ist in diesem Fall nicht möglich. –

Antwort

9

Sie können die Zeitüberschreitung in Ihrem connection string einstellen.

Bearbeiten (neu): Es stellt sich heraus, dass es zwei verschiedene Timeout-Konzepte gibt. Das Verbindungszeitlimit wird verwendet, um zu bestimmen, ob eine Verbindung hergestellt werden kann oder nicht. Die Eigenschaft CommandTimeout des Objektkontexts steuert die Zeitüberschreitung für Befehle. Setzen Sie das also auf einen hohen Wert und es sollte die kurz laufenden Abfragen in keiner Weise beeinflussen.

+0

Ist das der einzige Weg? Ich würde es vorziehen, es nur für diese eine Abfrage zu ändern. Bei anderen Abfragen würde ich es lieber früher ablaufen lassen, da sie sehr schnell sind und ein längerer Lauf eine Verbindungsunterbrechung bedeuten würde. –

+0

@ Russell Steen: Ich habe meine Antwort mit einer anderen Option aktualisiert. –

+0

@Russell Steen: Ich habe meine Antwort erneut aktualisiert. –

Verwandte Themen