我在我的項目上實現了代碼優先遷移,並且希望不必在程序包管理器控制檯中始終使用添加遷移和更新數據庫。我希望數據庫的更新自動發生。用於EF遷移的Web.config配置
因此,我更新了我的web.config文件來執行此操作。我刪除了我的數據庫,但由於某種原因,當我啓動應用程序時,它不會創建數據庫。難道我做錯了什麼?
這裏是我的web.config
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
<contexts>
<context type="AuctionService.DataAccess.AuctionContext, AuctionService.DataAccess">
<databaseInitializer type="System.Data.Entity.MigrateDatabaseToLatestVersion`2[[AuctionService.DataAccess.AuctionContext, AuctionService.DataAccess], [AuctionService.DataAccess.Migrations.Configuration, AuctionService.DataAccess]], EntityFramework">
</databaseInitializer>
</context>
</contexts>
</entityFramework>
編輯
我的代碼是一個WCF服務,當我調試這項服務,我得到這個
服務器遇到一個錯誤處理請求。 消息的例外情況是'無法更新數據庫以匹配當前型號 ,因爲有未決的更改並且自動遷移已禁用。 將掛起的模型更改寫入基於代碼的遷移或啓用自動遷移。設置爲 DbMigrationsConfiguration.AutomaticMigrationsEnabled爲true以啓用 自動遷移。'
你碰巧知道它是否可以設置AutomaticMigrationDataLossAllowed = true在獲取生成的配置類有一個屬性設置爲你web.config(通過轉換)。如果我把它放在我的代碼中,我會永遠偏執於它會在生產系統上運行! –
@IainGalloway,你當然可以總是創建一個自定義的應用程序設置,它是在配置方法中讀取的。我選擇使用條件編譯來設置值:'#if DEBUG AutomaticMigrationDataLossAllowed = true; #else' –