Можно ли откатить зафиксированные данные с помощью TransactionScope?

Цель проста - откатить данные, вставленные модульным тестом. Вот как это происходит. В модульном тесте вызывается метод, который создает новое соединение и вставляет некоторые данные. После этого модульный тест создает новое соединение и пытается найти то, что было вставлено, и подтвердить это. Я надеялся обернуть эти две вещи с помощью TransactionScope , а не вызвать Complete и увидеть откат вставленных данных. Этого не происходит. Я что-то делаю не так или просто упускаю суть?

using (new TransactionScope())
{
    // call a method that inserts data
    var target = new ....
    target.DoStuffAndEndupWithDataInDb();

    // Now assert what has been added.
    using (var conn = new SqlConnection(connectionString))
    using (var cmd = conn.CreateCommand())
    {
        // Just read the data from DB
        cmd.CommandText = "SELECT...";
        conn.Open();
        int count = 0;
        using (var rdr = cmd.ExecuteReader())
        {
            // Read records here
            ...
            count++;
        }

        // Expecting, say, 3 records here
        Assert.AreEqual(3, count);
    }
}

РЕДАКТИРОВАТЬ: Я не думаю, что на моем компьютере был запущен и настроен DTC. Итак, я запустил службу и попытался настроить DTC, но получаю эту ошибку. enter image description here

5
задан Schultz9999 21 November 2011 в 22:34
поделиться