在调用保存更改和实体上下文时,事务范围始终升级为MSDTC和错误。即使只有一个实体上下文

时间:2014-04-24 15:42:00

标签: c# sql-server entity-framework transactions transactionscope

我的实体上下文与SQLServer 2008 R2有连接。

下面是我正在调用的代码,它非常简单,我已将它放在一个事务中来演示问题(事件虽然事务没有针对此示例的目的)

我收到服务器不可用的" MSDTC"调用保存更改时出错。但是,如果只使用一个上下文,我认为它不会升级到MSDTC。我错过了什么吗?

       MyEntities entity = new MyEntities();
    using (System.Transactions.TransactionScope ts = new System.Transactions.TransactionScope())
    {


        entityy.Groups.AddObject(new Group
    {
        InstanceId = 1000
        ,
        Name = "TransactionGroup",
        InsertedDate = DateTime.UtcNow,
        LastUpdatedDate = DateTime.UtcNow,
        InsertedBy = LoggedInUser,
        LastUpdatedBy = LoggedInUser
    });


       entity.SaveChanges();


    ts.Complete();
    }

1 个答案:

答案 0 :(得分:0)

使用声明在transactionscope内创建上下文(MyEntities实体)。

using(TransactionScope ts = new TransactionScope())
{
   using(MyEntities entity = new MyEntities())
   {
     //... your code ...
     //...
     entity.SaveChanges();
   }
   ts.Complete();
}