Verwalten der Lebensdauer von dbContext

Ich würde gerne Band-die Lebensdauer eines dbContext auf die Lebensdauer einer Sitzung, um - zum Beispiel - in der Lage sein zu Begehen oder Abbrechen der änderungen auf eine Gruppe von Mutationen auf die dbcontext-über mehrere Anfragen.

Gibt es andere (bessere?) Möglichkeiten, dies zu erreichen? Wenn Nein, was wäre ein geeigneter Mechanismus zu schaffen, und entsorgen Sie die Zusammenhänge? Ich denke über statische Hashtabellen mit Aufräumen am Ende der Sitzung, aber vielleicht mache ich Alles Falsch. Ich denke auch über die Idee, nur hält Sie sich auf jene Kontexte, die zu tun, die Arbeit auf mehrere Anfragen, und halten Sie den rest-pro-Aktion. Irgendwelche Ratschläge?

  • Ein paar Dinge, Erstens, dass MVC nicht über ein Konzept von Sitzungen, die ein großer Teil von MVC, dass seine stateless, d.h. keine Zustand zwischen requests. Zweitens habe ich persönlich das Gefühl, dass es eine wirklich schlechte Idee zu halten, einen DBcontext öffnen, die lange jedenfalls, wie es progressivly und langsamer wird je mehr Objekte verfolgt. dies bedeutet, dass Ihre Benutzer-Erfahrung verschlechtern, je länger ein Benutzer auf der Website.
  • Hallo, vielen Dank für das feedback. Könnten Sie empfehlen eine andere Möglichkeit, dies zu lösen? Auch ich glaube, dass Sitzungen immer noch eine wichtige Rolle spielen. Einkaufswagen, bleiben, angemeldet, etc. etc. etc. alles ist session-basiert - oder zumindest, ich denke, es ist.
  • Wenn Sie mit einem IOC-container, können Sie die Lebensdauer der Rahmen zu pro web-Anfrage. So, wenn Sie den Kontext, in mehreren Orten in der gleichen Anfrage verwenden Sie das gleiche context-Instanz.
  • normalerweise mit MVC beschäftigen wir uns mit den Dingen ein bisschen anders, zum Beispiel mit Auth verwenden wir eine cookie-Zustand zu halten, dies gibt die illusion einer persistenten login. Im Falle Ihrer DBcontext ich würde empfehlen, die übergabe der partial-Modell, um die Ansicht bis zu seinem Abschluss und zu speichern, die teilweise an die Datenbank. Wenn youre interessiert, warum EF-werden langsam, mit vielen überwachten Elementen, check out my post hier: blog.staticvoid.co.nz/2012/05/...
InformationsquelleAutor Martijn | 2012-10-25
Schreibe einen Kommentar