У меня есть код, который выдает исключение, когда я использую его против 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:
основной провайдер не удалось открыть.
---> System.InvalidOperationException: объект соединения не может быть
зачислен в сферу действия сделки.
Таким образом, первое сохранение / фиксация работает нормально, но когда я пытаюсь снова извлечь объект (чтобы проверить, сохранились ли данные в транзакции), именно тогда происходит ошибка.
Теперь я уверен, что это Одиночная транзакция , а не Распределенная транзакция ... поэтому я предполагаю, что это должно сработать?
Предложения, добрый народ?