2009-09-18 5 views
8

1) SessionSource가 의도하는 것을 명확하게 설명 할 수 있고, Fluently.Configure() .... BuildSessionFactory()가 아닌 이것을 왜 사용하고 싶습니까?Fluent NHibernate - SessionSource와 PersistenceSpecification

2) PersistenceSpecification 클래스는 무엇입니까? 나는 당신이 영속성 테스트 (http://wiki.fluentnhibernate.org/Persistence_specification_testing)를 위해 그것을 사용할 수 있다는 것을 알고 있지만, 다른 시나리오에서는 잘리는 것을 보았다.

감사합니다.

+0

나는 당신이 SessionSource를 통해 당신의 데이터베이스를 생성 할 수 있다는 것을 안다.하지만 그것은 SessionFactory를 통해 사용 된 것을 본 것이다. 귀하의 질문에 대한 답변을 보니 재미 있습니다. – mxmissile

답변

8

1) SessionSource는 ISession 팩토리를 약간 넘습니다. 특히 SQLite 인 메모리 테스트에 유용하게 사용됩니다. SQLite는 데이터베이스가 파일에 기록되지 않는 메모리 모드를 가지고 있습니다. 이 모드는 매우이기 때문에 영속 클래스를 단위 테스트하는 데 매우 유용합니다. 문제는이 데이터베이스가 정확히 하나의 연결 만 지속한다는 것입니다. 연결이 닫히면 데이터베이스가 사라집니다. 따라서 동일한 연결이 항상 사용되도록 SingleConnectionSessionSourceForSQLiteInMemoryTesting이 사용됩니다.

2) 위키에서 설명한대로 지속성 테스트에 사용되는 것과 같습니다 ... 다른 곳에서는 어디에서 보았습니까?