Je suis actuellement en train de jouer avec le HybridSessionBuilder classe trouvés sur Jeffrey Palerme post de blog:
http://jeffreypalermo.com/blog/use-this-nhibernate-wrapper-to-keep-your-repository-classes-simple/
À l'aide de cette classe, mon référentiel ressemble à ceci:
public class UserRepository : IUserRepository
{
private readonly ISessionBuilder _sessionBuilder;
public UserRepository(ISessionBuilder sessionBuilder)
{
_sessionBuilder = sessionBuilder;
}
public User GetByID(string userID)
{
using (ISession session = _sessionBuilder.GetSession())
{
return session.Get<User>(userID);
}
}
}
Est-ce la meilleure façon d'aller sur la gestion de la NHibernate session / l'usine? J'ai entendu des choses sur l'Unité de Travail et la création d'une session par requête web et de rinçage à la fin. De ce que je peux dire, mon actuel de la mise en œuvre n'est pas de faire de tout cela. C'est essentiellement en s'appuyant sur le Référentiel de saisir la session à partir de la session de l'usine et de l'utiliser pour exécuter les requêtes.
Existe-il des pièges à faire de l'accès à la base de cette façon?