Aus irgendeinem Grund blockiert die Nhibernate, wenn ich versuche, auf die Sitzung zuzugreifen. Es wird die folgende Ausnahme ausgelöst:FluentNHibernate und die Sitzung nicht erkennen
Kein CurrentSessionContext konfiguriert (die Eigenschaft current_session_context_class festlegen)!
Bitte beachten Sie, dass ich keine XML zum Einrichten der Konfiguration verwende!
Ich eröffne die Sitzung in meinem Test:
[SetUp]
public void Initialize()
{
_session = GetSessionFactory().OpenSession();
_transaction = _session.BeginTransaction();
SetupContext();
When();
}
und dann die aktuelle Sitzung Ich bin mit Repository zugreifen. Das Repository befindet sich in einer anderen DLL.
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;
}
UPDATE:
In meiner BaseTest.cs Klasse Ich habe auch ein Teardown:
[TearDown] public void CleanUp() { _session.Dispose(); _transaction.Dispose(); }
Während des Debuggen scheint es, als ob CleanUp ausgelöst wird und das _session-Objekt beendet wird!
Ein weiteres Update:
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;
}
Jetzt bekomme ich folgende Fehlermeldung:: Ich habe den folgenden Code beim Erstellen der Konfiguration hinzugefügt
keine Sitzung mit dem aktuellen Kontext gebunden
Hat diese gelöst werden? – DevelopingChris