我想在我的Fluent NHibernate配置中将默认事务级别设置为ReadCommitted。如果我使用XML映射文件,我可以在配置文件中添加一个键:
<add key="hibernate.connection.isolation" value="ReadCommitted" />
但我无法弄清楚如何使用Fluent配置来实现这一目标。
答案 0 :(得分:6)
Fluent NHibernate对事务隔离没有任何作用,因此缺省值将是NHibernate默认的。我不知道那是什么原因。
我们没有明确的方法来设置隔离,但由于它只是一个配置值,您可以使用Raw方法来设置属性。
MsSqlConfiguration.MsSql2008.Raw("connection.isolation", "isolation_level");
答案 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)