7 Stimmen

Wie lege ich den Standard-Isolierungsgrad für Transaktionen in Fluent NHibernate fest?

Ich möchte die Standardtransaktionsebene in meiner Fluent NHibernate-Konfiguration auf ReadCommitted setzen. Wenn ich XML-Mapping-Dateien verwenden würde, könnte ich einen Schlüssel zu meiner Konfigurationsdatei hinzufügen:

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

aber ich kann nicht herausfinden, wie ich dies mit der Fluent-Konfiguration erreichen kann.

6voto

Rafael Mueller Punkte 5886

Fluent NHibernate macht nichts mit der Transaktionsisolierung, so dass der Standardwert der Standardwert von NHibernate ist. Ich weiß beim besten Willen nicht, was das ist.

Wir haben keine explizite Methode, um die Isolation zu setzen, aber da es nur ein Konfigurationswert ist, können Sie die Raw-Methode verwenden, um die Eigenschaft zu setzen.

MsSqlConfiguration.MsSql2008.Raw("connection.isolation", "isolation_level");

Quelle: https://web.archive.org/web/20100812054505/http://support.fluentnhibernate.org/discussions/help/45-default-isolation-level-for-transactions

5voto

MLJ Punkte 123

Sie sollten die Isolationsebene angeben, wenn Sie aufrufen: BeginTransaction auf Ihrem Session-Objekt.

...
ISession session = SessionFactory.OpenSession();
session.BeginTransaction(IsolationLevel.ReadCommitted);
...

Bitte beachten Sie: NHibernate-Transaktionen für weitere Einzelheiten.

1voto

davioooh Punkte 22088

Mit Fluent NHibernate v 2.x IsolationLevel() Methode kann verwendet werden, um den Isolationsgrad für Transaktionen global festzulegen:

MsSqlConfiguration.MsSql2008
    .IsolationLevel(System.Data.IsolationLevel.ReadCommitted)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X