尝试使用EF CTP5进行简单交易& SqlServerCE4.0 ==失败。为什么?

时间:2011-01-22 23:52:10

标签: .net transactions sql-server-ce transactionscope sql-server-ce-4

我有一些代码在我对SqlServer CE 4.0&在TransactionScope中。首先是代码,然后是错误。

// Arrange.
// ... some stuff ...
// like .. order = get order with ID #1.

// Act.
using (new TransactionScope())
{
    order.Name = name; // Update a field.
    _orderRepository.Save(order);
    _unitOfWork.Commit(); // <-- this works 100% fine.

    // Assert.
    // Reload the order so we can see if the data persisted to the DB.
    var updatedOrder = _orderRepository
    .Find()
    .Where(x => x.OrderId == 1)
    .SingleOrDefault(); <-- // this throws the exception.

    Assert.IsNotNull(updatedOrder);
    Assert.AreEqual(name, order.Name);
}

异常错误是: -

  

System.Data.EntityException:The   底层提供程序在Open上失败。   ---&GT; System.InvalidOperationException:连接对象不能   参加交易范围。

所以第一次保存/提交工作正常,但是当我尝试再次检索对象时(查看数据是否在事务中持续存在),就在发生错误时。

现在我确定这是单一交易而不是分布式交易 ...所以我假设这应该有用吗?

建议,善良的人?

1 个答案:

答案 0 :(得分:0)