IsolationLevel内部连接字符串

时间:2012-08-20 08:32:13

标签: c# sqlite nhibernate

我在我的测试项目中使用sqllite db。

当我在我的交易中使用IsolationLevel时,一切都运行完美

using (ITransaction transaction = session.BeginTransaction(IsolationLevel.ReadCommitted))

但我不想在我的交易中硬编码IsolationLevel.ReadCommitted我想把它放在我的连接字符串中,我试过这个

<add name="ConnectionString" connectionString="Data Source=...;ISOLATION LEVEL=IsolationLevel.ReadCommitted"/>

但错误仍然在消息"The database is locked !"

2 个答案:

答案 0 :(得分:2)

此处没有连接字符串选项(请参阅MSDN)。在事务中指定if(根据您的第一个示例),或在打开连接后发出SET TRANSACTION ISOLATION LEVEL语句。作为侧面观察:请注意,对于从池中重复使用的连接,隔离级别不会重置;这让我发疯了...所以你可能想要明确地设置隔离级别,以确保它符合你的预期,而不仅仅是底层连接使用的最后一个命令(即使对于一个新的SqlConnection)正在使用。

答案 1 :(得分:0)

为什么不添加

<add key="hibernate.connection.isolation" value="ReadCommitted" />
在你的nhibernate配置部分中