, поскольку DROP DATABASE не разрешен в TransactionScope.

шлом я писал модульные тесты для простых операций CRUD при создании кода доступа к данным / хранилища, который выглядит примерно так:

using(var connection = new WhateverConnection(connectionString))
{
    connection.Open();
    using(var transaction = connection.BeginTransaction())
    {
        try
        {
            //test the CRUD operation
        }
        finally
        {
            //gets rid of any stuff created during the test
            transaction.Rollback();
        }
    }
}

Сегодня я возился с EF4 Code First и понял, что понятия не имею, как этот сценарий тестирования переводится в лексикон Entity Framework. Кажется, если я позвонюDbContext.SaveChanges(), это экономита также совершает, независимо от того,AcceptAllChanges() назывался. Даже используяObjectContext вместоDbContextЯ не могу понять, как этот простой тестовый сценарий может быть воссоздан без очистки вручную созданных макетов / тестовых объектов. Я прочиталэта статья на MSDN, ноTransactionScope на самом деле не имеетRollback Метод типа либо. Я используюTransactionScope и никогда не звониComplete? Есть ли другой способ или способ использования DbContext и / или ObjectContext для отката во время модульных тестов? Нужно ли полностью перестраивать свое мышление для TDD с помощью EF4 Code First?

Ответы на вопрос(1)

Ваш ответ на вопрос