我有一个小应用程序,分为两部分:
- 连接数据库检索配置数据的配置部分。
- 数据导入器,使用配置将数据导入数据库。
Data Importer在多个线程中使用IsolationLevel.Snapshot
上的事务运行
配置sql命令不使用任何事务。
数据导入器不能在配置窗口打开的同时运行。
我的问题如下:
1。打开应用程序并检查配置。(进入配置窗口抽查一切)。2.执行数据导入。3.重新打开配置窗口
在导入后重新打开配置窗口时,我将收到一个来自数据阅读器的错误,说Snapshot isolation transaction failed accessing database...
。然而,这个数据阅读器是从一个没有任何事务或隔离级别设置的SqlConnection创建的。
如果我重新启动应用程序,我可以重新打开配置窗口没有错误。
.Net或SQLServer是否持有IsolationLevel ?
是否有一种方法来改变IsolationLevel后,它已经设置没有创建一个新的事务的一切?
我认为隔离级别是通过连接池传递的。
这是设计的,正如这篇文章所述。
有几种方法可以解决这个问题,例如显式指定事务隔离级别。
你可能想看看这篇文章