linq-to-sql – 针对Sql Server 2000的TransactionScope错误 –
|
我正在尝试针对我的Sql 2000数据库为我的Linq-to-Sql操作设置一个简单的事务.使用TransactionScope它看起来像这样: using (TransactionScope transaction = new TransactionScope())
{
try
{
Store.DBDataContext dc = new Store.DBDataContext();
Store.Product product = GetProduct("foo");
dc.InsertOnSubmit(product);
dc.SubmitChanges();
transaction.Complete();
}
catch (Exception ex)
{
throw ex;
}
}
但是,我不断收到以下错误: 合作伙伴事务管理器已禁用其对远程/网络事务的支持. (HRESULT异常:0x8004D025) 但是,如果我使用传统交易设置交易,它可以正常工作.所以这很好用: Store.DBDataContext dc = new Store.DBDataContext();
try
{
dc.Connection.Open();
dc.Transaction = dc.Connection.BeginTransaction();
Store.Product product = GetProduct("foo");
dc.InsertOnSubmit(product);
dc.SubmitChanges();
dc.Transaction.Commit();
}
catch (Exception ex)
{
dc.Transaction.Rollback();
throw ex;
}
finally
{
dc.Connection.Close();
dc.Transaction = null;
}
我想知道TransactionScope是否正在做一些与我的第二次实现不同的事情.如果没有,我没有使用TransactionScope失去了什么?此外,任何导致错误的指导都会很好.我已经确认MSDTC在sql server和我的客户端机器上运行. 解决方法看看这里:使用System.Transactions和Microsoft SQL Server 2000进行快速事务 和这里:
(编辑:邯郸站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

