Pour une raison quelconque, le Nhibernate est choquant lorsque j'essaie d'accéder à la session. Il lève l'exception suivante:FluentNHibernate et ne pas reconnaître la session
Aucun CurrentSessionContext configuré (définissez la propriété current_session_context_class)!
Veuillez noter que je n'utilise pas XML pour configurer la configuration!
J'ouvre la session dans mon test:
[SetUp]
public void Initialize()
{
_session = GetSessionFactory().OpenSession();
_transaction = _session.BeginTransaction();
SetupContext();
When();
}
et je me sers du référentiel pour accéder à la session en cours. Le dépôt est dans une DLL différente.
public void Save(Category newCategory)
{
var session = SessionFactory.GetSession();
session.SaveOrUpdate(newCategory);
}
public static ISession GetSession()
{
var session = _sessionFactory.GetCurrentSession();
if (session == null)
return _sessionFactory.OpenSession();
return session;
}
MISE À JOUR:
Dans ma classe BaseTest.cs J'ai aussi un désassemblage:
[TearDown] CleanUp public void() { _session.Dispose(); _transaction.Dispose(); Pendant le débogage, il semble que le CleanUp est en train d'être déclenché et de tuer l'objet _session!
Une autre mise à jour: J'ai ajouté le code suivant lors de la construction de la configuration:
public static ISessionFactory CreateSessionFactory()
{
_sessionFactory =
Fluently.Configure().Database(
MsSqlConfiguration.MsSql2000.ConnectionString(
c => c.FromConnectionStringWithKey("ConnectionString")))
.Mappings(m =>
m.FluentMappings.AddFromAssemblyOf<Category>())
**.ExposeConfiguration(x =>
{
x.SetProperty("current_session_context_class",
"thread_static");
})**
.BuildSessionFactory();
return _sessionFactory;
}
Maintenant, je reçois l'erreur suivante:
Aucune session liée au contexte actuel
Est-ce que ce seront résolus? – DevelopingChris