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

问题描述 投票:6回答:1

在我的配置中我有这个:

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

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

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

我的连接字符串:

<add name="TestConnection" 
     providerName="System.Data.SqlClient" 
     connectionString="Data Source=.\;Initial Catalog=App.Test;Trusted_Connection=True;MultipleActiveResultSets=True;" />

为什么会这样?

entity-framework ef-code-first connection-string
1个回答
9
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.