无法删除数据库,因为它当前正在使用 - EF代码优先

SB2*_*055 6 entity-framework connection-string ef-code-first

在我的配置中我有这个:

public sealed class Configuration : DbMigrationsConfiguration<App.Repository.NogginatorDbContext>
{
    public Configuration()
    {
        AutomaticMigrationsEnabled = true;
    }

    protected override void Seed(AppDbContext context)
    {
        SqlConnection.ClearAllPools();
        //context.Database.CreateIfNotExists();
        System.Data.Entity.Database.SetInitializer(new DropCreateDatabaseAlways<AppDbContext>());

        if (!WebMatrix.WebData.WebSecurity.Initialized)
        {
            WebSecurity.InitializeDatabaseConnection("TestConnection", "UserProfile", "UserId", "UserName", autoCreateTables: true);
        }
     }
 }
Run Code Online (Sandbox Code Playgroud)

这用于每次都应该删除并重新创建的测试数据库.虽然当我从包管理器控制台点击"update-database"时,即使在运行之前手动删除了数据库,我也会得到:

无法删除数据库"Nogginator.Test",因为它当前正在使用中.

我的连接字符串:

<add name="TestConnection" 
     providerName="System.Data.SqlClient" 
     connectionString="Data Source=.\;Initial Catalog=App.Test;Trusted_Connection=True;MultipleActiveResultSets=True;" />
Run Code Online (Sandbox Code Playgroud)

为什么会这样?

fou*_*ght 9

如果您最近正在调试Web应用程序,请确保IIS Express仍未运行,并且没有与IIS Express关联的w3wp.exe进程.此过程可能仍然保持数据库连接.

  • +还要确保在服务器资源管理器中关闭连接(如果您在那里打开了连接) (11认同)