2013-04-17 2 views
6

Ich benutze Entity Framework 4.5 mit Objektkontext. Mein Modell hat ungefähr 200 Entitätstypen. Das erste Mal, wenn ich eine lächerliche Abfrage in einer 10-Datensätze-Datenbank mache, die 1 Datensatz zurückgibt, dauert es 3 Sekunden. Von nun an wird nicht nur diese Abfrage, sondern alle werden sofort. Wenn ich IISExpress schließe und es wieder öffne. Das erste Mal wird wieder sehr langsam sein.Entity Framework dauert 3 Sekunden, um die einfachste Abfrage, die ich in meinem Leben zum ersten Mal gesehen habe, auszuführen. Es wird sofort danach

Es muss etwas sein, die ich mit Entity Framework zu tun. I've think of pregenerating views oder upgrading to Entity Framework 5.0, aber ich bin mir nicht wirklich sicher, dass das helfen wird.

Irgendeine Idee?

BEARBEITEN Abfragen, die direkt in Management Studio ausgeführt werden, sind immer schnell. Die Abfrage ist sehr einfach. Ich bekomme nur einen Benutzernamen nach Benutzername, und die Tabelle hat wie .. 10 Datensätze. Debug oder Release machen keinen großen Unterschied.

+3

was ist die Abfrage? Was passiert, wenn Sie die einfache Abfrage direkt gegen die DB ausführen? Wenn Sie den Profiler verwendet haben, was sagt Ihnen das, wenn Sie die Abfrage zum ersten und zweiten Mal ausführen? –

+2

Ist es langsam, wenn der Debugger nicht angeschlossen ist und auch im Release-Modus gebaut wird? –

+0

Danke für Ihre Antworten. Ich habe die Frage mit zusätzlichen Informationen aktualisiert. –

Antwort

1

Die Verzögerung ist aufgrund der Zeit, Entity Framework, um Feuer nimmt.

siehe this SO question für weitere Informationen

2

Dies ist ein bekanntes "Problem". Ich setze das in Anführungszeichen, weil es ein Problem für Sie und mich ist, aber Microsoft hält es für normal und kein Problem. This MSDN Page zeigt die Leistungskosten verschiedener Teile von EF.

Es gibt bereits many, many, many Fragen auf SO darüber. Ich würde vorschlagen, einige von ihnen zu erkunden. Vor ein oder zwei Jahren gab es eine spezielle Frage, bei der eine ziemlich detaillierte Analyse des Problems von mehreren Personen durchgeführt wurde, aber ich kann es gerade jetzt nicht finden.

Insbesondere ist dies sehr langsam mit großen Modellen und EDMX-Dateien, die Umwandlung in ein Code-Modell könnte helfen.

Verwandte Themen