Ich versuche, Fluent mit Session per Request zu verwenden. Ich folge einem "Rezept" aus dem nhibernate Kochbuch, aber es verwendet die nhibernate Konfigurationsdatei.
Ich bin mir nicht sicher, was besser ist, aber im Moment bleibe ich bei fluent config, weil ich nicht weiß, wie ich die nhibernate-Konfigurationsdatei einstellen kann, um fluent mapping und vanilla nhibernate mapping (hbm-Dateien) zu verwenden.
namespace Demo.WebUI
{
public class MvcApplication : NinjectHttpApplication
{
public static ISessionFactory SessionFactory { get; private set; }
protected override void OnApplicationStarted()
{
SessionFactory = Fluently.Configure()
.Database(MsSqlConfiguration.MsSql2008.ConnectionString(
c => c.FromConnectionStringWithKey("test")))
.Mappings(m => m.FluentMappings
.AddFromAssemblyOf
<Demo.Framework.Data.NhibernateMapping.UserMap>())
.ExposeConfiguration(BuidSchema)
.BuildSessionFactory();
}
protected void Application_BeginRequest(object sender, EventArgs e)
{
var session = SessionFactory.OpenSession();
//CurrentSessionContext.Bind(session);
}
protected void Application_EndRequest(object sender, EventArgs e)
{
//var session = CurrentSessionContext.Unbind(SessionFactory);
SessionFactory.Dispose();
}
}
}
Wie Sie in der Begin_Request sehen können, hatte das Bücher-Tutorial
CurrentSessionContext.Bind(session);
Wenn ich dies jedoch verwende, tritt ein Fehler auf, da ich die nhibernate-Konfigurationsdatei nicht verwendet habe.
Wie ändere ich es also, um eine fließende Konfiguration zu verwenden? Oder muss ich diesen Schritt gar nicht ausführen (d. h. wird er intern durchgeführt)?