J'utilise NHibernate pour mon projet. Je suis un débutant à travailler sur NHibernate. J'utilise le mappage de relations many-to-many "users" et "roles". Voici le code pour obtenir l'utilisateur:NHibernate many to many et ISession.Close()
public User GetUser(int userId){
using(ISessuib session = new SessionManager().GetSession())
{
return session.Get<User>(userId);
}
}
public void LazyLoadUsingSessionTest(){
var user= GetUser(1);
Assert.NotNull(user.Roels);
}
il lance une exception: n'a pas réussi à initialiser paresseusement une collection, aucune session ou session fermée
si je ne pas utiliser le « à l'aide » déclaration dans la méthode "GetUser", cela fonctionne. Mais je dois appeler le session.Close() pour libérer la ressource
quand je l'utilise dans une page web, je veux seulement utiliser le GetUser(), pas le ISession object.so ma question est: Cela signifie-t-il que je dois avoir un objet ISession (pour relire le resous) dans ma page web? ou une meilleure solution? (parce que je ne veux pas l'objet ISession apparaît dans mes fichiers aspx.cs)
merci!
Désolé, mais c'est un mauvais conseil. De cette façon, vous détruisez le chargement paresseux et l'isolation des transactions en même temps, tout en faisant exploser le code avec beaucoup d'ordures. –