Se o seu banco de dados estiver aberto no SSMS ou no VS, descartar e recriar o banco de dados lançará uma exceção.
Agora, podemos superar esse problema considerando o banco de dados como um usuário único.
context.Database.ExecuteSqlCommand("ALTER DATABASE " + context.Database.Connection.Database + " SET SINGLE_USER WITH ROLLBACK IMMEDIATE");
context.Database.ExecuteSqlCommand("USE master DROP DATABASE " + context.Database.Connection.Database);
Para outras opções disponíveis, clique aqui
http://www.mssqltips.com/sqlservertip/1407/getting-exclusive-access-to-restore-sql-server-databases/