¿Cómo puedo restablecer un proveedor EF7 InMemory entre pruebas unitarias?

Estoy tratando de usar el proveedor EF7 InMemory para pruebas unitarias, pero la naturaleza persistente de la base de datos InMemory entre pruebas me está causando problemas.

El siguiente código demuestra mi problema. Una prueba funcionará y la otra prueba siempre fallará. Aunque configuré el _context como nulo entre pruebas, la segunda ejecución de prueba siempre tendrá 4 registros.

[TestClass]
public class UnitTest1
{

    private SchoolContext _context;

    [TestInitialize]
    public void Setup()
    {
        Random rng = new Random();

        var optionsBuilder = new DbContextOptionsBuilder<SchoolContext>();
        optionsBuilder.UseInMemoryDatabase();

        _context = new SchoolContext(optionsBuilder.Options);
        _context.Students.AddRange(
            new Student { Id = rng.Next(1,10000), Name = "Able" },
            new Student { Id = rng.Next(1,10000), Name = "Bob" }
        );
        _context.SaveChanges();
    }

    [TestCleanup]
    public void Cleanup()
    {
        _context = null;
    }

    [TestMethod]
    public void TestMethod1()
    {
        Assert.AreEqual(2, _context.Students.ToList().Count());
    }

    [TestMethod]
    public void TestMethod2()
    {
        Assert.AreEqual(2, _context.Students.ToList().Count());
    }

}

public class Student
{
    public int Id { get; set; }
    public string Name { get; set; }
}

public class SchoolContext : DbContext
{
    public SchoolContext(DbContextOptions options) : base(options) { }

    public DbSet<Student> Students { get; set; }
}

Respuestas a la pregunta(3)

Su respuesta a la pregunta