2013-07-26 34 views
6

Trong cấu hình của tôi, tôi có điều này:Không thể thả cơ sở dữ liệu vì nó hiện đang sử dụng - EF mã đầu tiên

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

này được sử dụng cho một thử nghiệm db rằng nên thả và tái tạo tất cả các thời gian. Mặc dù khi tôi nhấn "cập nhật cơ sở dữ liệu" từ bảng điều khiển quản lý gói, ngay cả khi cơ sở dữ liệu bị xóa thủ công trước khi chạy, tôi nhận được:

Không thể thả cơ sở dữ liệu "Nogginator.Test".

chuỗi kết nối của tôi:

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

Tại sao này thể xảy ra?

+0

Bạn có cơ sở dữ liệu mở trong SSMS hoặc tương tự không? – Pete

+0

@Pete Không, SSMS mở nhưng tôi đã xóa/đóng tất cả kết nối trên db mục tiêu. Nếu tôi đóng SSMS và thử lại, tôi sẽ gặp lỗi tương tự – SB2055

Trả lời

9

Nếu gần đây bạn đã gỡ lỗi ứng dụng web của mình, hãy đảm bảo rằng IIS Express vẫn không chạy và không có quá trình w3wp.exe liên kết với IIS Express. Quá trình này có thể vẫn đang giữ kết nối cơ sở dữ liệu.

+11

+ Đồng thời đảm bảo kết nối được đóng trong Trình khám phá Máy chủ (nếu bạn đã mở kết nối ở đó) – robasta

+0

@rob Cuộc gọi tốt trên đó! Điều đó bit tôi cũng chỉ là ngày khác. – fourpastmidnight

Các vấn đề liên quan