Frage

Das war ein Problem, das auf drei Projekte für mich gegeben hat.

Ich habe versucht, die folgenden:

<property name="connection.isolation">ReadCommitted</property>

In hibernate.cfg.xml

Mit fließend nhiberate:

MsSqlConfiguration.MsSql2008.IsolationLevel(IsolationLevel.ReadCommitted);

In global.asax.cs

Ich habe immer gezwungen worden, um es einrichten wie folgt:

CurrentNhibernateSession.Transaction.Begin(IsolationLevel.ReadCommitted);

, die funktioniert. (Ich kann dies mit NHibernate Profiler sehen)

Das Problem ist jetzt, ich scharf Architektur und transaction.begin bin mit innerhalb dieses Rahmens genannt wird und Ich habe Probleme, es wieder aufzubauen.

Gibt es eine Möglichkeit, dies zu tun, dass die Arbeiten ohne es explizit einstellen, wenn Sie eine Transaktion beginnen?

War es hilfreich?

Lösung

Sind Sie sicher, dass dies der Fall ist? Wenn Sie die Überprüfung nur die Isolationsstufe durch das, was NHProf Sie sagt; Das könnte ein Problem sein. Denken Sie daran, dass NHProf nur berichtet, was die Protokollierung Infrastruktur in NHibernate es füttert. Vielleicht ist die Isolationsstufe Nachricht wird nicht gesendet, wenn Sie eine Transaktion mit dem Standard öffnen? Dies könnte wahrscheinlich durch Untersuchung der NHibernate Quelle überprüft werden.

Ich würde vorschlagen, ein alternatives Mittel mit der Transaktionsebene zu überprüfen (vielleicht SQL Profiler?) Vor dem Schluss, dass dies nicht funktioniert wie erwartet.

Edit:

Ich habe einen Blick auf die NHibernate Quelle hatte und meine Vermutung oben überprüfen. Wenn Sie einen Blick auf die

Andere Tipps

Sieht aus wie Ihr Eigentum Einstellung sollte hibernate.connection.isolation ...

aufgerufen werden
<add key="hibernate.connection.isolation" value="ReadCommitted" />

Viele Grüße

Jon

scroll top