0
A
回答
3
沒有也沒有必要使用自動遷移時,「丟失」的任何數據。 您的遷移配置類應爲狀態不允許數據丟失 您將需要構建自定義腳本/或在處理導致數據丟失的更改時調整生成的腳本。
public override void MigrateDb() {
Database.SetInitializer(new MigrateDatabaseToLatestVersion<MYDbContext, MYSECIALMigrationConfiguration>());
// Context = GetDefaultContext(); // check if a new context is really needed here
Context.Database.Initialize(true);
}
public class MYSPECIALMigrationConfiguration : MYBaseMigrationConfiguration<MYDbContext>{ }
public abstract class MYBaseMigrationConfiguration<TContext> : DbMigrationsConfiguration<TContext>
where TContext : DbContext{
protected MYBaseMigrationConfiguration() {
AutomaticMigrationsEnabled = true; // you can still chnage this later if you do so before triggering Update
AutomaticMigrationDataLossAllowed = true; // you can still chnage this later if you do so before triggering Update
}
如何處理遷移。
..這實際上是一個很大的問題。
EF6 Migrations - new features and options
Great info on Migrations when working in teams.
這包括你可能認識,從而幫助您瞭解什麼方法最適合你的許多場景。
相關問題
- 1. 實體框架,代碼優先和datetimes
- 2. MySql和實體框架代碼優先
- 3. 使用實體框架4.3更新實體 - 代碼優先
- 4. 實體框架 - 代碼優先 - 更新不會更改外鍵
- 5. 實體框架建模代碼優先
- 6. 實體框架代碼優先使用
- 7. 實體框架代碼優先映射
- 8. 與實體框架代碼優先
- 9. 在實體框架代碼優先4.1
- 10. 映射實體框架「代碼優先」
- 11. 實體框架代碼優先 - 界面
- 12. 實體框架 - 代碼優先Fluent API:ErrorMessage?
- 13. 實體框架代碼優先的NullReferenceException
- 14. 實體框架 - 代碼優先方法
- 15. 播種實體框架代碼優先
- 16. 實體框架+ PostgreSQL代碼優先
- 17. 實體框架代碼優先 - 關係
- 18. 實體框架代碼優先:更新SetInitializer拋出異常
- 19. 從實體框架4.1中更新排除列代碼優先
- 20. 實體框架 - 代碼優先,DbSet.Local不在UI中更新
- 21. 實體框架4.3 - 代碼優先 - 更新列表屬性
- 22. 實體框架:數據庫優先/代碼優先混合
- 23. 實體框架端口從模型優先到代碼優先
- 24. 代碼優先或模型優先(實體框架/ RIA服務)
- 25. 實體框架4.1 RC(代碼優先) - 實體沒有通過關聯更新
- 26. 實體框架 - 架構升級,多個DBMS和代碼優先
- 27. 實體框架代碼優先和實現IList <T>
- 28. 如何更新實體框架7遷移和數據庫 - 代碼優先
- 29. 實體框架代碼首先,通過「先典」更新父
- 30. 實體框架5代碼優先 - 如何「重新開始」?
如果您正確設置EF遷移,則在更新過程中不應丟失任何數據。 – SOfanatic
我在開發階段之前曾使用過EF遷移。在我的場景中使用(發佈後)可以嗎? –
是的,如果您要更改代碼,那麼遷移將保持模型和數據庫同步。因爲在部署後想要將'AutomaticMigrationDataLossAllowed'設置爲'false',但它仍然可以工作,所以做出一些更改可能會更困難。看看菲爾的答案。 – SOfanatic