2017-03-15 57 views
0

我想了解遷移。我有AutomaticMigrationsEnabled = true;並創建了初始遷移。Azure實體框架AutomaticMigrationsEnabled更改數據類型不會更新數據庫類型

如果我添加一個新的DBSet到DBContext併發布這個服務,那麼數據庫被更新爲一個對應的新表。但是,如果我更改實體類中屬性的數據類型,例如將StatusID從int更改爲下面示例中的字符串,併發布服務,則相應的列數據類型不會在數據庫中更新。

如果AutomaticMigrationsEnabled = true,那麼爲什麼在這種情況下數據庫不會自動更新?

感謝

namespace myService.DataObjects 
{ 
    public class Status : EntityData 
    { 
    public int StatusID { get; set; } 
    public string Description { get; set; } 
    } 
} 

public class myServiceContext : DbContext 
{.... 
public Configuration() 
{ 
    AutomaticMigrationsEnabled = true; 
    AutomaticMigrationDataLossAllowed = true; 
    SetSqlGenerator("System.Data.SqlClient", new EntityTableSqlGenerator()); 
} 
+0

您是否遇到過每個屬性的這個問題,或僅僅是StatusID? 像這樣更改列類型通常涉及刪除和重新創建列。 StatusID是你的PK,但是在Azure SQL中(我猜根據你使用Azure SQL的標籤)沒有PK就沒有表。即使PK正在進行更改操作。 你有沒有在你的日誌中看到任何錯誤? –

+0

StatusID不是主鍵,因爲我從EntityData類繼承,主鍵是來自EntityData類的ID。我會嘗試更改其他屬性,但現在我覺得它處於不穩定狀態,我需要重置遷移以真正測試它,但我猜測它正在發生在所有屬性上。我一直有問題保持同步,一分鐘似乎工作,然後彈出一個這樣的問題。 –

+0

好吧,它現在對我來說是工作的,我不確定我是否看到過去或過去的事情,但我會將其標記爲已回答。感謝您花時間在此 –

回答

0

現在爲我工作,我不知道,如果我是在過去還是什麼看到的東西,但我將作爲回答,以紀念這一點。感謝您花費在此的任何時間

相關問題