2016-07-11 6 views
1

Ich erhalte die Sitzung von Sitzung zu Service-Methode in global.asax alsWie nhibernate Sitzung pro Anfrage Muster zu implementieren, Service-Stack des funq Behälter als Abhängigkeit Injektor

protected void Application_Start() 
{  
    this.RegisterContainer(); 
} 

2 Injizieren

private void RegisterContainer() 
{ 
    container.Register<IActivityService>(c => new ActivityService(SessionFactory.GetCurrentSession())); 
} 

3 In-Service-Methode ich erhalte die Sitzung als

Das Problem ist, wenn gleichzeitige Anfragen an diese Service-Methode kam, wirft es Ausnahmen.Ich kam zu wissen, dass Nhibernate keine Unterstützung unterstützt. Um es mit Funq Container zu erreichen?

Antwort

1

standardmäßig ServiceStack's IOC Register Abhängigkeiten als Singleton standardmäßig während Sie eine vorübergehende Abhängigkeit für diese stattdessen mit registrieren sollten:

container.Register<IActivityService>(c => 
    new ActivityService(SessionFactory.GetCurrentSession())) 
.ReusedWithin(ReuseScope.None); 

Auch andere Registrierungs Beispielen NHibernate mit ServiceStack zeigt dieses previous question.

+0

Obwohl ich ReuseScope.None eingestellt habe, unterstützt es immer noch keine parallelen Transaktionen. – Raghu

+0

Sie wissen nichts über parallele Transaktionen mit NHibernate, vielleicht brauchen Sie eine neue Sitzung, statt die vorhandene zu verwenden? – mythz

Verwandte Themen