1
創建一個新列,我向已經有一個鏈接到同一個表的表添加了第二列。 我改變之前我的模型看起來如下:c#EntityFramework CodeFirst遷移爲我的數據庫模型中現有的一個
[Table("RepairProcesses", Schema = "Data")]
public class RepairProcess : DatabaseBase
{
[DataMember]
[Column("SerialNumberID")]
public Guid SerialNumberID { get; set; }
[ForeignKey("SerialNumberID")]
public virtual SerialNumber SerialNumber { get; set; }
}
現在我加入了第二個鏈接到表和模型現在看起來如下:
[Table("RepairProcesses", Schema = "Data")]
public class RepairProcess : DatabaseBase
{
[DataMember]
[Column("SerialNumberID")]
public Guid SerialNumberID { get; set; }
[DataMember]
[Column("ReplacementSerialNumberID")]
public Guid? ReplacementSerialNumberID { get; set; }
[ForeignKey("SerialNumberID")]
public virtual SerialNumber SerialNumber { get; set; }
[ForeignKey("ReplacementSerialNumberID")]
public virtual SerialNumber ReplacementSerialNumber { get; set; }
}
現在當我試圖創建migrationscript的EntityFramework刪除foreingn鍵並創建一個名爲SerialNumber_ID的新列。
public override void Up()
{
DropForeignKey("Data.RepairProcesses", "SerialNumberID", "Data.SerialNumbers");
AddColumn("Data.RepairProcesses", "SerialNumber_ID", c => c.Guid());
AddColumn("Data.RepairProcesses", "ReplacementSerialNumberID", c => c.Guid());
CreateIndex("Data.RepairProcesses", "SerialNumber_ID");
CreateIndex("Data.RepairProcesses", "ReplacementSerialNumberID");
AddForeignKey("Data.RepairProcesses", "ReplacementSerialNumberID", "Data.SerialNumbers", "ID");
AddForeignKey("Data.RepairProcesses", "SerialNumber_ID", "Data.SerialNumbers", "ID");
}
public override void Down()
{
DropForeignKey("Data.RepairProcesses", "SerialNumber_ID", "Data.SerialNumbers");
DropForeignKey("Data.RepairProcesses", "ReplacementSerialNumberID", "Data.SerialNumbers");
DropIndex("Data.RepairProcesses", new[] { "ReplacementSerialNumberID" });
DropIndex("Data.RepairProcesses", new[] { "SerialNumber_ID" });
DropColumn("Data.RepairProcesses", "ReplacementSerialNumberID");
DropColumn("Data.RepairProcesses", "SerialNumber_ID");
AddForeignKey("Data.RepairProcesses", "SerialNumberID", "Data.SerialNumbers", "ID");
}
的問題是,這是一個生產數據庫,當EF爲的serialNumber創建一個新的領域我失去了鏈接到正確的領域。
當我只刪除創建新列的Up/Down Script中的行時,我遇到了問題,因爲EF期望列名爲SerialNumber_ID。
感謝您的幫助, 邁克爾
太謝謝你了!這有訣竅 – Michael