Fluent NHibernate - SessionSource und PersistenceSpecification

8

1) Könnte jemand eine klare Erklärung geben, wofür SessionSource gedacht ist, und warum sollte ich das lieber als nur fließend verwenden? Configure () .... BuildSessionFactory ()?

2) Wozu dient die PersistenceSpecification-Klasse? Ich weiß, dass Sie es für Persistenz-Tests verwenden können ( Ссылка ), aber ich habe gesehen, dass es in anderen Szenarien auftaucht, aber ich bin es nicht wirklich sicher was für.

Danke!

S

    
UpTheCreek 18.09.2009, 11:00
quelle

1 Antwort

8

1) SessionSource ist wenig mehr als eine ISession-Fabrik. Eine besonders nützliche Verwendung ist in SQLite In-Memory-Tests. Sehen Sie, SQLite hat einen In-Memory-Modus, in dem die Datenbank niemals in eine Datei geschrieben wird. Dieser Modus ist sehr nützlich für Unit-Tests Ihrer persistenten Klassen, da er sehr schnell ist. Problem ist, diese Datenbank hält genau eine Verbindung. In dem Moment, in dem die Verbindung geschlossen wird, verschwindet die Datenbank. Daher wird SingleConnectionSessionSourceForSQLiteInMemoryTesting verwendet, um dies sicherzustellen Es wird immer dieselbe Verbindung verwendet.

2) Es ist genau wie du sagst, es wird für Tests der Persistenzspezifikation verwendet, wie im Wiki erklärt ... wo sonst hast du es gesehen?

    
Mauricio Scheffer 25.09.2009, 17:17
quelle

Tags und Links