2013-07-26 37 views
6

在我的配置我有這樣的:無法刪除數據庫 - EF代碼優先

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

這是用於測試數據庫是應該刪除並重建每次。雖然當我打從包管理器控制檯「更新數據庫」,即使數據庫被刪除前手動運行,我得到:

無法除去數據庫「Nogginator.Test」,因爲它正在使用中。

我的連接字符串:

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

爲什麼會這樣發生?

+0

你有沒有在SSMS或類似的東西打開數據庫? – Pete

+0

@Pete不,SSMS已打開,但我刪除/關閉了目標數據庫上的所有連接。如果我關閉了SSMS並再次嘗試,我得到了相同的錯誤 – SB2055

回答

9

如果您最近正在調試您的Web應用程序,請確保IIS Express尚未運行,並且沒有與IIS Express關聯的w3wp.exe進程。這個過程可能仍然保留在數據庫連接上。

+11

+還要確保在服務器瀏覽器中關閉連接(如果您在那裏打開連接) – robasta

+0

@rob也可以很好地調用該連接!那一點也就在前幾天。 – fourpastmidnight