我正在構建一個使用ASP.NET MVC 4和Entity Framework 5.0的應用程序。我最近了解了您可以在您的數據庫應用程序上實現的EF Code-First Migrations工具。我在PM控制檯中運行了「Enable-Migration」,並且它成功啓用並按照預期創建了「InitialCreate.cs」類,並在表創建中填充了適當的up()和down()方法。實體框架代碼第一個遷移類文件
然後我繼續添加另一個具有2個簡單屬性(id,name)的類(Category.cs),並希望將此遷移添加到數據庫。我跑「添加遷移AddCategoryClass」我下午來得到這個消息:
Scaffolding migration 'AddCategoryClass'.
The Designer Code for this migration file includes a snapshot of your current Code
First model. This snapshot is used to calculate the changes to your model when you scaffold the next migration. If you make additional changes to your model that you want to include in this migration, then you can re-scaffold it by running 'Add-Migration 201307301938256_AddCategoryClass' again.
它創造了遷移文件夾遷移文件,但是當我打開了「的.cs」文件,它創建的,向上( )和Down()方法是空白的。我期待它創建一個表並分別添加字段。出於好奇心,我運行了「Update-Database」,併成功完成了(在Configuration.cs文件中更改AutomaticMigration = true後)。當我建立我的應用程序時,表格出現在數據庫中。
所以我的問題是 - >爲什麼Up()和Down()方法是空白的?
對於記錄,如果Configuration.cs文件中AutomaicMigrations = false,則「Update-Database」命令不起作用;給我以下錯誤:
Unable to update database to match the current model because there are pending changes and automatic migration is disabled. Either write the pending model changes to a code-based migration or enable automatic migration. Set DbMigrationsConfiguration.AutomaticMigrationsEnabled to true to enable automatic migration.
我假設這些不應該是,它會是有益的,今後看我的遷移,看看我做了什麼。任何幫助或指導都會很棒。先進的謝謝你。
我在Win 7 64bit上使用VS 2012。
你有一個或兩個遷移文件(configuration.cs除外)嗎? – SOfanatic
現在它顯示了兩個,InitialCreate和AddCategoryClass。但第二個在你的配置類中有空白方法 – Sixers17
是'AutomaticMigrationsEnabled = true'? –