我只是在我的項目中遵循實體框架代碼的第一種方法,而我陷入了一些問題。總是我被迫使用命令重新生成數據庫。然而,現在我設法得到這個穩定。我有一個場景,在這個框架是創建一個遷移腳本是不合邏輯的,可能是我缺少的東西,需要你的幫助,實體框架 - 代碼優先方法
該場景是 - 我已經啓用遷移,並創建了一個InitialCreate所有我的表設置,我對此印象深刻。但是當我在實體做出改變,例如,我有新政類
我添加了名爲LenderName,BorrowerName新的屬性和運行TEH附加遷移腳本,它創建了一個遷移腳本對我來說,
public partial class LenderBorrowerName : DbMigration
{
public override void Up()
{
DropColumn("dbo.Deals", "LenderName");
DropColumn("dbo.Deals", "BorrowerName");
DropColumn("dbo.Deals", "Discriminator");
}
public override void Down()
{
AddColumn("dbo.Deals", "Discriminator", c => c.String(nullable: false, maxLength: 128));
AddColumn("dbo.Deals", "BorrowerName", c => c.String());
AddColumn("dbo.Deals", "LenderName", c => c.String());
}
}
問題是,原始數據庫沒有這個字段,並且通過這個遷移腳本,它假設添加到數據庫中。要更新這些字段,如果我運行update-migration -force,由於它嘗試從表中刪除列,因此它會因上述up()函數而失敗。爲什麼微軟正在添加該drop腳本,是開發人員需要手動刪除的?請幫忙