2012-08-13 23 views
0

我希望兩個實體之間有一個簡單的外鍵關係,EF屬性是雙向的。然而,此刻EF正在生成代表關係每個方向的2個外鍵。我怎樣才能讓EF將他們視爲單一財產?在ScriptRun類SCRIPT_ID - 下生成一個名爲Script_ScriptRuns和ScriptRun_Script兩臺數據庫外鍵約束,分別使用如何製作一個實體的EF地圖NavigationProperty到另一個實體的集合

public class Script 
{ 
    [Key] 
    public Guid Id { get; set; } 

    public virtual ICollection<ScriptRun> ScriptRuns { get; set; } 
} 


public class ScriptRun 
{ 
    [Key] 
    public Guid Id { get; set; } 

    [Required] 
    public virtual Script Script { get; set; } 
} 

回答

1

外鍵字段SCRIPT_ID和Script_Id1使用您發佈的代碼,它只是創造了一個單一的FK我。

你只是想重命名在該類中創建的FK嗎?您可以通過在DbContext中映射列來完成此操作。這會將其映射到ScriptId:

 modelBuilder.Entity<Script>() 
      .HasMany(s => s.ScriptRuns) 
      .WithRequired(sc => sc.Script) 
      .Map(x => x.MapKey("ScriptId")); 

如果不是,您可以發佈您的整個模型嗎?

+0

完美正是我所需要的 - 'HasMany' /'WithRequired'組合似乎足以說明EF兩者是相同的。乾杯!所以目前告訴我我需要等待3分鐘才能接受答案,然後會這樣做。 – 2012-08-13 13:35:28

相關問題