Je commence à créer une application, et je prévois d'utiliser ServiceStack. Je veux juste savoir quelles sont les meilleures pratiques/bonnes approches pour manipuler NHibernate ISession ou d'autres objets de session spécifiques au contexte "par requête".ServiceStack NHibernate Session par demande
Je pensais que l'enregistrement d'un ISessionFactory dans le Cio comme:
container.Register<ISessionFactory>(sessionFactory);
Et en cas de besoin obtenir un nouvel objet Session ... Ou peut-être fournir directement l'objet de la session:
container.Register<ISession>(c => sessionFactory.OpenSession()).ReusedWithin(ReuseScope.None);
Ou l'une des poignées l'ISession et une transaction par défaut via l'événement Global.asax BeginRequest:
protected void Application_BeginRequest(object sender, EventArgs e)
{
var session = factory.OpenSession();
ITransaction itrans = session.BeginTransaction();
Context.Items.Add("session", session);
Context.Items.Add("trans", itrans);
}
Donc, je suis un peu perdu, quelles sont les meilleures pratiques, étant donné les technologies ci-dessus, ou similaires, comme EF ou un autre cadre Rest-Services?
Merci à l'avance
Pouvez-vous s'il vous plaît expliquer comment vous avez utilisé ce? La documentation de ServiceStack n'a vraiment aucun sens sur la façon d'utiliser ces ServiceRunners. – slashp
J'ai ajouté du code à ajouter dans votre hôte d'application. Vous ne savez pas comment utiliser le service Coureur du service. –
Juste vu les demandes pour plus de détails, pourrait être trop tard pour être utile, mais peut-être quelqu'un d'autre veut savoir. 'code' public class AppHost: AppHostBase { public AppHost(): base (" Service ", typeof (AccessService).Assemblée) {} public override vide Configurer (conteneur conteneur) {} public override IServiceRunner CreateServiceRunner (ActionContext ActionContext) {return new BaseServiceRunner (ce, ActionContext); } 'code' –