1

Azure不支持「堆」表,因此我無法「刪除」主索引。修改實體框架遷移是否安全,以便不用刪除和重新創建索引,而是以不同的方式進行修改?

EntityFramework生成一個需要刪除然後重新創建索引的遷移。在運行遷移之前安全地對其進行修改是爲了不刪除並重新創建索引,而是將數據複製到具有新索引的新表中,刪除舊錶,然後將新表重命名爲舊錶的名稱?

最終數據庫的最終狀態將是相同的,所以我認爲這是一個安全的更改。

模型快照等應該都是相同的。

+0

我覺得你要創建你自己的'IDatabaseInitializer ' – CodeNotFound

回答

0

我們定期修改遷移以創建附加索引或創建視圖而不是表格。

public override void Up() { 
    Sql(@"CREATE VIEW ... "); 
} 

public override void Down() { 
    Sql(@"DROP VIEW ... "); 
} 

只要數據庫的最終狀態與您的模型兼容,就很安全。您只需要注意遷移的「向下」部分。如果您有機會運行它,則不僅應該修改Up方法,還應修改遷移中的Down方法。

相關問題