1
我有這個模型外鍵實體框架6.1的代碼首先創建不必要的列
public class Event {
[Key]
public int Id { get; set; }
public string Title { get; set; }
}
public class EventAction {
[Key]
public int Id { get; set; }
public int EventId { get; set; }
[ForeignKey("EventId")]
public Event Event { get; set; }
public int? RelatedEventId { get; set; }
[ForeignKey("RelatedEventId")]
public Event RelatedEvent { get; set; }
}
當我生成的代碼第一次遷移,它會嘗試添加新Event_Id
列,而不是用我的RelatedEventId
即使我把ForeignKey
屬性以指示要使用的字段。
這不是我第一次定義鏈接到同一個表的多個外鍵,但在此之前我從來沒有通過這個問題。
這裏是產生
public override void Up() {
AddColumn("dbo.EventActions", "Event_Id", c => c.Int());
AddColumn("dbo.EventActions", "RelatedEventId", c => c.Int());
CreateIndex("dbo.EventActions", "Event_Id");
CreateIndex("dbo.EventActions", "RelatedEventId");
AddForeignKey("dbo.EventActions", "Event_Id", "dbo.Events", "Id");
AddForeignKey("dbo.EventActions", "RelatedEventId", "dbo.Events", "Id");
}
這是第一次遷移還是您要更改現有模式? – dotctor
@dotctor,我正在改變一個現有的模式。我在EventAction上添加新的Column RelatedEventId –
您可以共享生成的遷移代碼嗎? – dotctor