我有以下代码,用于将单行提交到数据库表(SQL 2008 / .NET 4)。
using (var db = new MyDbDataContext(_dbConnectionString))
{
Action action = new Action();
db.Actions.InsertOnSubmit(dbAction);
db.SubmitChanges();
}
一般情况下一切都正常,但偶尔我会遇到以下异常:
System.InvalidOperationException: This SqlTransaction has completed; it is no longer usable.
at System.Data.SqlClient.SqlTransaction.ZombieCheck()
at System.Data.SqlClient.SqlTransaction.Rollback()
at System.Data.Linq.DataContext.SubmitChanges(ConflictMode failureMode)
在SO上有许多类似的问题,但是经过阅读后我无法确定原因。
这可能仅仅是由于SQL超时引起的(异常在调用后接近25秒时发生)吗?或者我应该期望在这种情况下出现SQL超时异常?
还有其他可能导致这种情况的原因吗?