我第一次和遷移使用EF代碼有一個ASP.NET MVC項目。遷移與實體框架6碼第一
我想一個新的屬性添加到一個類。爲此,我創建了遷移代碼,以便在與該類相關的表中添加特定列。
我的遷移代碼如下:
public partial class Add_DataRequisicao_to_BiblRequisicao : DbMigration
{
public override void Up()
{
AddColumn("dbo.BiblRequisicoes", "DataRequisicao", c => c.String(nullable: false, defaultValue: "01/01/1900 00:00"));
}
public override void Down()
{
DropColumn("dbo.BiblRequisicoes", "DataRequisicao");
}
}
而且屬性添加到類如下:
[Required]
[Display(Name = "Data Requisição")]
public string DataRequisicao { get; set; }
當我發佈該項目並轉到項目網站,我收到以下錯誤消息:
無法更新數據庫以匹配當前模型,因爲有掛起的c掛起和自動遷移被禁用。將掛起的模型更改寫入基於代碼的遷移或啓用自動遷移。將DbMigrationsConfiguration.AutomaticMigrationsEnabled設置爲true以啓用自動遷移。
檢查數據庫,我看到遷移是成功運行的,因爲該列已創建。在遷移表中,還有一個新條目表明遷移運行。
遷移項:
MigrationId: 201704261436437_Add_DataRequisicao_to_BiblRequisicao
ContextKey: WebAppInvestigacaoMultimedia.Migrations.Configuration
Model: 0x1F8B0800000...
ProductVersion: 6.1.3-40302
我不明白爲什麼我得到錯誤信息,如果遷移成功的名稱和屬性的類型RAN是一樣的附加列表。
您是如何創建遷移的?你使用了Add-Migration還是你自己添加了這個類? – Gimly
您是否使用自動或基於代碼的遷移?從代碼示例中提供的2種方法中,我認爲您正在使用'Add-Migrations',這意味着基於代碼的遷移。在包管理器控制檯中使用'-Verbose -Script'標誌來查看數據庫腳本和執行遷移過程的步驟。 –
@Gimly我用添加遷移 – miguelbgouveia