如何在Fluent NHibernate中设置默认事务隔离级别?

时间:2010-04-19 15:45:26

标签: nhibernate fluent-nhibernate

我想在我的Fluent NHibernate配置中将默认事务级别设置为ReadCommitted。如果我使用XML映射文件,我可以在配置文件中添加一个键:

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

但我无法弄清楚如何使用Fluent配置来实现这一目标。

3 个答案:

答案 0 :(得分:6)

  

Fluent NHibernate对事务隔离没有任何作用,因此缺省值将是NHibernate默认的。我不知道那是什么原因。

     

我们没有明确的方法来设置隔离,但由于它只是一个配置值,您可以使用Raw方法来设置属性。

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

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

答案 1 :(得分:5)

在Session对象上调用:BeginTransaction时,应指定隔离级别。

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

有关详细信息,请参阅:NHibernate transactions

答案 2 :(得分:1)

使用Fluent NHibernate v 2.x IsolationLevel()方法可用于全局设置事务的隔离级别:

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