我必须在我的数据库中添加很多信息。添加此信息大约需要 5-7 分钟。我需要添加交易。
我试过这个:
try {
db.Connection.Open();
db.Transaction = db.Connection.BeginTransaction();
UpdateTable1();
UpdateBigTable2();
...
db.Transaction.Commit();
} catch {
db.Transaction.Rollback();
}
但是当我的数据库正在更新时,我无法读取或使用我的数据库做任何事情。
我试图设置IsolationLevel
,但没有任何帮助。
我试过这个:
using (var ts = new TransactionScope()) {
UpdateTable1();
ts.Complete();
}
但程序在 2-3 分钟后崩溃。
这个解决方案也没有帮助:
var transactionOptions = new TransactionOptions();
transactionOptions.IsolationLevel = System.Transactions.IsolationLevel.Serializable;
transactionOptions.Timeout = TimeSpan.MaxValue;
using (var ts = new TransactionScope(TransactionScopeOption.Required, transactionOptions))
{
...
}
我可以访问我的数据库,当它更新时,如果我设置TransactionScopeOption.Suppress
但在这种情况下事务不起作用。