2009-09-18 3 views
8

1) Может ли кто-нибудь дать ясное объяснение того, для чего предназначен SessionSource, и почему я хотел бы использовать это, а не только Fluently.Configure() .... BuildSessionFactory()?Fluent NHibernate - SessionSource и PersistenceSpecification

2) Что такое класс PersistenceSpecification? Я знаю, что вы можете использовать его для тестирования настойчивости (http://wiki.fluentnhibernate.org/Persistence_specification_testing), но я видел, как это происходит в других сценариях, но я не совсем уверен, для чего.

Спасибо!

S

+0

Я знаю, что вы можете сгенерировать свою базу данных через SessionSource, но это единственное, что я видел, что она использовалась для SessionFactory. Будьте интересны, чтобы увидеть ответы на свой вопрос. – mxmissile

ответ

8

1) SessionSource немного больше, чем завод ISession. Одно из наиболее полезных применений - это тесты SQLite in-memory. См. SQLite имеет режим памяти, в котором база данных никогда не записывается в файл. Этот режим очень полезен для модульного тестирования ваших постоянных классов, так как это очень быстро. Проблема в том, что эта база данных поддерживает ровно одно соединение. Когда соединение закрывается, база данных исчезает. Поэтому SingleConnectionSessionSourceForSQLiteInMemoryTesting используется для обеспечения того, чтобы одно и то же соединение всегда использовалось.

2) Это так же, как вы говорите, оно используется для тестирования спецификации настойчивости, как объяснено в вики ... где еще вы его видели?

Смежные вопросы