Entity Framework Timeouts
Posted: 09 Sep 2025, 13:20
Ich erhalte Timeouts mit dem Entity Framework (EF), wenn ich einen Funktionsimimporte verwendet, der über 30 Sekunden dauert, um abzuschließen. Ich habe das Folgende ausprobiert und konnte dieses Problem nicht beheben: < /p>
Ich habe die Standardbefehlsbefehlsbefehle in der Verbindungszeichenfolge in der app.config < /em> in dem Projekt mit der EDMX -Datei vorgeschlagen. class = "Lang-XML PrettyPrint-Override"> als auch die BefehlsTimeout auf 180. Als ich den Standardbefehls -Timeout aus der Verbindungszeichenfolge entfernt habe, funktionierte es. Die Antwort besteht also darin, den BefehlsTimeout in Ihrem Repository in Ihrem Kontextobjekt wie SO manuell festzulegen: < /p>
this.context.CommandTimeout = 180;
< /code>
Anscheinend hat das Einstellen der Zeitüberschreitungseinstellungen in der Verbindungszeichenfolge keinen Einfluss darauf. < /p>
Ich habe die Standardbefehlsbefehlsbefehle in der Verbindungszeichenfolge in der app.config < /em> in dem Projekt mit der EDMX -Datei vorgeschlagen. class = "Lang-XML PrettyPrint-Override">
Code: Select all
< /code>
Ich habe versucht, den BefehlsTimeout in meinem Repository direkt so festzulegen: < /p>
private TrekEntities context = new TrekEntities();
public IEnumerable GetKirksFriends()
{
this.context.CommandTimeout = 180;
return this.context.GetKirksFriends();
}
< /code>
Was kann ich noch tun, um den EF vom Timing herauszuholen? Dies geschieht nur für sehr große Datensätze. Alles funktioniert gut mit kleinen Datensätzen. Einzelheiten finden Sie in der inneren Ausnahme. ---> system.data.sqlclient.sqlexception: Timeout abgelaufen. Der Zeitüberschreitungszeitraum, der vor Abschluss des Vorgangs abgelaufen ist oder der Server nicht antwortet. Ich hatte sowohl die Verbindungszeichenfolge mit Standardbefehl Timeout = 300000
this.context.CommandTimeout = 180;
< /code>
Anscheinend hat das Einstellen der Zeitüberschreitungseinstellungen in der Verbindungszeichenfolge keinen Einfluss darauf. < /p>