Código EF4 primeiro, TDD, CRUD e transações

No passado, escrevi testes de unidade para operações CRUD simples ao criar código de acesso / repositório de dados que se parece com isso:

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();
        }
    }
}

Hoje eu estava brincando com o Código EF4 primeiro e percebi que não fazia ideia de como esse cenário de teste se traduz no léxico do Entity Framework. Parece que, se eu ligarDbContext.SaveChanges(), salvae confirma, independentemente de ser ou nãoAcceptAllChanges() foi chamado. Mesmo usandoObjectContext ao invés deDbContext, Não consigo descobrir como esse cenário de teste simples pode ser recriado sem limpar manualmente quaisquer objetos de simulação / teste criados. Eu lieste artigo no MSDN, masTransactionScope realmente não tem umRollback Digite o método também. Eu usoTransactionScope e nunca ligueComplete? Existe outro método ou maneira de usar DbContext e / ou ObjectContext para reverter durante testes de unidade? Preciso reajustar completamente meu pensamento para TDD com o EF4 Code First?

questionAnswers(1)

yourAnswerToTheQuestion