2009-09-18 8 views
8

1) ¿Alguien podría dar una explicación clara de lo que es la intención de SessionSource, y por qué querría usar esto en lugar de solo Fluently.Configure() .... BuildSessionFactory()?Fluido NHibernate - SessionSource y PersistenceSpecification

2) ¿Para qué sirve la clase PersistenceSpecification? Sé que puedes usarlo para las pruebas de persistencia (http://wiki.fluentnhibernate.org/Persistence_specification_testing), pero lo he visto surgir en otros escenarios, pero no estoy seguro de para qué.

Gracias!

S

+0

Sé que puede generar su base de datos a través de SessionSource, pero eso es lo único que he visto que se utiliza para SessionFactory. Sé interesante para ver las respuestas a tu pregunta. – mxmissile

Respuesta

8

1) SessionSource es poco más que una fábrica ISession. Un uso particularmente útil de esto es en las pruebas SQLite en memoria. Ver, SQLite tiene un modo en memoria, en el cual la base de datos nunca se escribe en un archivo. Este modo es muy útil para probar sus clases persistentes, ya que es muy rápido. El problema es que esta base de datos dura exactamente una conexión. En el momento en que se cierra la conexión, la base de datos se desvanece. Por lo tanto, SingleConnectionSessionSourceForSQLiteInMemoryTesting se utiliza para garantizar que siempre se use la misma conexión.

2) Es como dices, se usa para pruebas de especificación de persistencia como se explica en la wiki ... ¿dónde más la viste?

Cuestiones relacionadas