好的,所以我完全依賴我的遷移和種子代碼來維護所有數據庫結構和初始數據。因此,我面臨的情況是,我在此版本中所做的所有更改都直接在數據庫(存儲過程和更新)上進行,而C#代碼本身沒有任何更改。因爲我想使用新的遷移來做這些DataBase特定的更改(並且「添加遷移」不會執行任何操作 - 導致代碼沒有更改),所以如何強制新的空代碼第一次遷移將我的更改手動放在它上面?如何強制執行新的空EF遷移?
回答
您必須添加一個空的遷移並手動將代碼添加到Up和Down方法中。我發現人們傾向於認爲這些方法的代碼必須由類似於「.designer」文件的工具生成,而事實並非如此。事實上,我經常發現自己編輯並在其中添加代碼。 爲此,我把所有的SQL代碼,我在腳本文件來執行,然後在向上的方法是這樣的執行:
public override void Up(){
var dirBase = AppDomain.CurrentDomain.BaseDirectory.Replace(@"\bin",string.Empty) + @"\Migrations\SqlScripts";
Sql(File.ReadAllText(dirBase + @"\CreateMyViews.sql"));
Sql(File.ReadAllText(dirBase + @"\CreateMySproc.sql"));
}
public override void Down(){
var dirBase = AppDomain.CurrentDomain.BaseDirectory.Replace(@"\bin",string.Empty) + @"\Migrations\SqlScripts";
Sql(File.ReadAllText(dirBase + @"\DropMySproc.sql"));
Sql(File.ReadAllText(dirBase + @"\DropMyViews.sql"));
}
我建議你讀這個鏈接: http://elegantcode.com/2012/04/12/entity-framework-migrations-tips/
問題是:一旦我創建了一個遷移.cs文件,使用DbMigration的部分類,部分的Up和Down方法(與「add-migration」命令創建的方法完全一樣),然後運行「update-database」它只是簡單地報告「沒有正在進行的基於代碼的遷移」...:/ –
您必須像通常那樣使用添加遷移來創建文件。之後,您將擁有一個空的遷移文件,即您必須編輯Up和Down方法(如我提供的示例代碼)。這樣Update-Database將完成它的工作。 –
在包管理器控制檯發出命令
Add-Migration "My new empty migration"
這會產生這種遷移模板
public partial class Mynewemptymigration : DbMigration
{
public override void Up()
{
}
public override void Down()
{
}
}
然後,您可以創建自己的自定義向上和向下遷移步驟。如果你的模型不是最新的,那麼上下就會有遷移代碼。在這種情況下,您需要更新您的模型,然後添加一個新的空遷移。
- 1. EF 6遷移:如何執行sql SELECT?
- 2. 「重新激活」EF遷移
- 3. 卡在EF遷移限制
- 4. EF遷移 - 啓用遷移
- 5. EF核心併發未強制執行
- 6. EF 6.0遷移:MigrationHistory中的ContextKey爲空
- 7. 可能強制從命令行遷移?
- 8. EF遷移:自動遷移中的RenameColumn?
- 9. 如何執行SQLite到PostgreSQL的遷移?
- 10. 強制LINQ重新執行?
- 11. 執行我的EF遷移中的SQL查詢
- 12. EF核心遷移
- 13. EF遷移問題
- 14. EF遷移到Oracle
- 15. EF遷移 - 在單個遷移
- 16. EF遷移被複制報表
- 17. 如何在EF Core代碼首次遷移中進行數據遷移?
- 18. 如何還原EF遷移並創建新的數據庫表
- 19. 如何忽略EF 4.3遷移表/類
- 20. 確定執行EF遷移時是否存在表格
- 21. 在EF遷移中自定義代碼執行
- 22. 執行添加遷移時EF 5&VS 11錯誤
- 23. EF遷移 - 種子僅在連接到調試器時執行
- 24. 強制執行
- 25. 強制執行
- 26. 強制執行
- 27. 在基於EF代碼的遷移之前運行更新
- 28. 運行EF遷移時出錯
- 29. 如何在沒有任何遷移的情況下強制新種子
- 30. 強制執行空JSON模式
可能的重複http://stackoverflow.com/questions/7667630/can-you-create-sql-views-stored-procedure-using-entity-framework-4-1-code-firs –
不重複,這是問題是關於基於代碼的遷移,而您指向的另一個關於代碼優先。 –