交易未连接,或已断开连接错误

时间:2012-05-31 18:43:31

标签: c# sql-server nhibernate bulkinsert

我正在

  

“交易未连接,或已断开连接错误”

在执行批量插入(以及其他一些操作)后提交/回滚事务时出现

错误。

using(var tran = Session.Session().BeginTransaction(IsolationLevel.Serializable))
    {
       // do something
       fullSession.Session().CreateSQLQuery(query).ExecuteUpdate();// this query bulk insert in a temp db
       // do something else
       tran.Commit()/ tran.RollBack();// if transaction is active and not already rolled back/committed
    }

如果从文件批量插入临时数据库的查询失败,我在tran.Commit / rollback上收到此错误。

3 个答案:

答案 0 :(得分:1)

批量插入是插入语句的组合,因此如果失败,它不会回滚事务,所以如果你真的想要捕获错误,请尝试在BEGIN和END事务中使用Try和catch块

答案 1 :(得分:0)

我使用NHybernate获得了完全相同的错误,同时持久化了具有类型System.Data.SqlTypes.SqlDateTime?(Nullable)属性的实体。

将属性更改为常规System.DateTime?解决了问题。

答案 2 :(得分:0)

我遇到了一些问题,但在MS SQL管理工作室中关闭连接后它就消失了。