Supposons que je fasse quelque chose qui nécessite l'accès à ISession
de NHibernate. Par exemple, en exécutant une requête Sql via ISQLQuery
ou en exécutant LINQ-to-NHibernate via session.Linq<MyType>()
. Je sais qu'il ya 2 façon d'accéder ISession
:Dans ActiveRecordMediator, vous devriez utiliser Execute ou CreateSession?
ActiveRecordMediator.GetSessionFactoryHolder().CreateSession()
ActiveRecordMediator.Execute()
Qu'est-ce que les avantages et les inconvénients de chacun? De plus, existe-t-il d'autres moyens?
Il semble que 'ActiveRecord.Execute' gère la session automatiquement, mais pas l'inverse. Il peut être la cause de préférer 'ActiveRecord.Execute' d'une autre manière dans la documentation. BTW existe-t-il des exemples/documentations sur 'Castle.ActiveRecord.Linq'? –
@afsharm: bien sûr, obtenir la session vous-même implique de l'envelopper dans un bloc 'using'. Re LINQ: voir http://stackoverflow.com/questions/2967777/how-to-use-linq-with-castle-activerecord –