5
我有以下兩個實體(其中許多,但這些給我的問題)EF 4.1代碼第一次外鍵增加了額外的列
public class StartPoint
{
public int StartPointId { get; set; }
public string Description { get; set; }
public int StartPointNumber { get; set; }
public int StartAreaId { get; set; }
public StartArea StartArea { get; set; }
}
和
public class StartArea
{
public int StartAreaId { get; set; }
public string Description { get; set; }
public ICollection<StartPoint> StartPoints { get; set; }
}
讓EF創建當我的它抱怨說,我需要關閉級聯刪除,因爲多個路徑,我做了如下。
modelBuilder.Entity<StartPoint>()
.HasRequired(x => x.StartArea)
.WithMany()
.HasForeignKey(x => x.StartAreaId)
.WillCascadeOnDelete(false);
的問題是,當數據庫中創建我得到兩個外鍵,一個被稱爲StartAreaId,正如我所期望的,另一種是StartArea_StartAreaId。僅使用StartAreaId。爲什麼以及如何擺脫StartArea_StartAreaId。如果我刪除上下文中的HasForeignKey並從實體中刪除StartAreaId,我會得到多個StartArea_StartAreaId列,如StartArea_StartAreaId和StartArea_StartAreaId1。我需要做些什麼來阻止這種情況的發生?我只想將StartAreaId作爲我的外鍵。
是啊,當然了,不知道爲什麼我沒有想到這一點。謝謝。 – Dirk
謝謝拉迪斯拉夫!受益於你的許多答案,包括這一個。只有觀察,這個問題是間歇性的(我的同事並沒有被迫提供WithMany中的任何東西,但是我必須......(你應該得到EF上的MVP :)) –