Question

Je suis nouveau sur NHibernate (mon 1er gros projet avec elle).
J'avais été en utilisant une méthode simple de l'accès aux données par la création de la ISession objet à l'intérieur d'un bloc using pour faire mon prendre mon Objet ou une liste d'Objets, de sorte que la session a été détruit après la sortie du bloc de code.

Ce n'est pas dans une situation où chargement différé est nécessaire, cependant.
Par exemple, si j'ai un Client de l'objet a une propriété qui est un regroupement de Commandes, puis, quand le lazy-load est tenté, je reçois un Hibernate exception.
Toute personne utilisant une autre méthode?

Autres conseils

découvrez l' SummerOfNHibernate webémissions pour un bon tutoriel...Ce que vous êtes à la recherche spécifiquement pour ne pas venir jusqu'à ce webisode 5 ou 6.

Garder votre session ouverte pour l'ensemble de votre unité de travail.Si votre session est la vie est trop petit, vous ne pouvez pas bénéficier de la session de mémoire cache de niveau (qui est considérable).De tout temps, vous pouvez éviter un aller-retour à la base de données va sauver beaucoup de temps.Vous ne pouvez pas profiter de chargement paresseux, ce qui est crucial pour comprendre.

Si votre session de la durée de vie est trop grand, vous pouvez exécuter d'autres questions.

Si c'est une application web, vous allez probablement faire très bien avec la session-par-httpRequest modèle.Fondamentalement, c'est un HttpModule qui ouvre la session au début de la demande et les bouffées de chaleur/ferme à la fin.Veillez à stocker la session en HttpContext.Les articles NON UNE VARIABLE STATIQUE.<--- conduit à toutes sortes de problèmes que vous ne voulez pas avoir affaire avec.

Vous pouvez également regarder RhinoCommons pour une unité de travail mise en œuvre.

Puisque vous développez une Application Web (sans doute avec l'ASP.NET), découvrez NHibernate les Meilleures Pratiques avec ASP.NET au CodeProject.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top