Hier ein paar Fragen aus einem aelterem Thread, die nicht beantwortet wurden:
Quote:
My initial impression of NHibernate was "wow, your entity classes can be plain-old C# objects, not having to track dirty/deleted status, you just have to attach transient ones you've just created, and the session does the rest. Referenced objects and collections can be lazy loaded, and you don't have to worry about how or when it happens." Now it looks like you have to add your own gateway to provide new sessions, manage your own cache, manage lazy loading, keep track of dirty/deleted objects, and worry about how often stuff in your cache should get refreshed to avoid getting stale. If we have to manage all these things ourselves, what does a session give us beyond providing a transaction? :(
Eigentlich sind die obigen Probleme genau die Antwort auf die Frage zum Schluss, d.h. eine Session loest all das (Cache, lazy loading ...).
Nur: Ich kann/sollte eine Session nicht Anwendungsweit verwenden, sondern nur wenn ich mit der Datenbank kommuniziere also eben wenn ich eine Transaktion durchfuehre. Somit nuetzt mir die Session eigentlich gar nichts, da sie ja im Vergleich zu meiner Anwendung ziemlich kurzlebig ist. Also nichts mit Laden eines Objektgraphen (Domain) und anschliessendem Arbeiten mit diesem Graphen waehrend der gesamten Andwendungsdauer.
Somit bietet die Session eigentlich wirklich nicht mehr als eine Transaktion.