세션에 액세스하려고 할 때 Nhibernate가 잠시 멈추는 경우가 있습니다.FluentNHibernate 및 세션을 인식하지 못함
CurrentSessionContext가 구성되지 않았습니다 (current_session_context_class 등록 정보 설정).
XML 구성을 사용하고 있지 않습니다.
[SetUp]
public void Initialize()
{
_session = GetSessionFactory().OpenSession();
_transaction = _session.BeginTransaction();
SetupContext();
When();
}
을 한 후 나는 현재 세션에 액세스 할 저장소를 사용하고 있습니다 :
내 시험에서 세션을 개방하고있다. 저장소가 다른 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 : 내 BaseTest.cs 클래스에서
나는 또한 분해가 :
[분해] 공공 무효 정리() { _session.Dispose(); _transaction.Dispose(); }
디버깅하는 동안 CleanUp이 실행되고 _session 개체가 죽는 것처럼 보입니다!
또 다른 업데이트 : 나는 구성을 구축하는 다음 코드를 추가했습니다 :
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;
}
지금 나는 다음과 같은 오류 얻을 :
이 해결나요? – DevelopingChris