NSitzungsverwaltung im Ruhezustand in ASP.NET MVC
Ich spiele gerade mit der HybridSessionBuilder-Klasse, die in Jeffrey Palermos Blog-Beitrag zu finden ist:
http: //jeffreypalermo.com/blog/use-this-nhibernate-wrapper-to-keep-your-repository-classes-simple
Mit dieser Klasse sieht mein Repository folgendermaßen aus:
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);
}
}
}
Ist dies der beste Weg, um die NHibernate-Sitzung / -Factory zu verwalten? Ich habe Dinge über Unit of Work gehört und eine Sitzung pro Webanforderung erstellt und am Ende gelöscht. Soweit ich weiß, macht meine derzeitige Implementierung nichts davon. Grundsätzlich ist das Repository darauf angewiesen, die Sitzung aus der Sitzungsfactory abzurufen und zum Ausführen der Abfragen zu verwenden.
Gibt es irgendwelche Fallstricke, um auf diese Weise auf die Datenbank zuzugreifen?