2012-07-02 21 views
8

Tôi có một dự án thư viện lớp học với DbContext và di cư của tôi kích hoạt với sau tập tin cấu hình:Cách đặt lại di chuyển cơ sở dữ liệu bằng mã EF trước?

<configuration> 
    <configSections> 
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> 
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=4.3.1.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 
    </configSections> 
    <connectionStrings> 
    <add name="DataContext" connectionString="Data Source=Data.sdf" providerName="System.Data.SqlServerCe.4.0" /> 
    </connectionStrings> 
    <entityFramework> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework"> 
     <parameters> 
     <parameter value="System.Data.SqlServerCe.4.0" /> 
     </parameters> 
    </defaultConnectionFactory> 
    </entityFramework> 
</configuration> 

Một thời gian trước khi tôi chơi với di cư cho dự án này và Get-Migrations lệnh luôn luôn trả về sau với tôi:

PM> Get-Migrations -StartupProjectName "Data" 
Retrieving migrations that have been applied to the target database. 
201207012104355_Initial 
201207012031234_Initial 
201207012024250_Initial 

Vấn đề là lệnh luôn trả về các mục này ngay cả khi tôi xóa Data.sdf hoặc xóa tất cả dự án và tạo một dự án mới. Cách duy nhất tôi có thể tạo cơ sở dữ liệu mới là thay đổi tên tệp cơ sở dữ liệu trong chuỗi kết nối từ Data.sdf thành Data1.sdf chẳng hạn. Vậy làm cách nào tôi có thể đặt lại lịch sử di chuyển mà không thay đổi tên cơ sở dữ liệu?

+3

Bạn có chắc chắn rằng bạn đã xóa một tập tin Data.sdf đúng ? –

+0

Dường như tôi cần xóa Data.sdf tại đó: C: \ Program Files (x86) \ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ Data.sdf Rất bất ngờ. –

+0

Di chuyển tạo bảng trong cơ sở dữ liệu của bạn có tên là __MigrationHistory, đây là nơi lưu trữ di chuyển. Bạn đã kiểm tra chưa –

Trả lời

5

Không biết đây có phải là phương pháp chính thức hay không. Nhưng đây là cách tôi đã làm nó.

  1. di cư xóa tập tin
  2. Deleted hàng phù hợp với từ __MigrationHistory

    DELETE FROM __MigrationHistory ĐÂU MigrationId = '201210271944168_AddLogTable'

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