2015-12-29 75 views
0

在我的表中它有兩個引用同一個表的外鍵。當我做遷移(實體框架代碼第一種方法),它會彈出錯誤的,創建多個外鍵首先在EF代碼中反射同一張表

「模型生成過程中檢測到一個或多個驗證錯誤: Dog_Sire_Target:多重無效的角色'Dog_Sire_Target'的關係「Dog_Sire '。由於依賴角色屬性不是關鍵屬性,所以從屬角色的多重性的上限必須是'*'。「。

但是,如果我只添加一個外鍵它正常工作。這是我的表格結構。

public class Dog 
{ 
[Key] 

public int Dog_Id { get; set; } 

public string Dog_Name { get; set; } 

[ForeignKey("Sire")] 

public int? Dog_SireId { get; set; } 

[ForeignKey("Dam")] 

public int? Dog_DamId { get; set; } 

[ForeignKey("Dog_SireId")] 

public virtual Dog Sire { get; set; } 

[ForeignKey("Dog_DamId")] 

public virtual Dog Dam { get; set; } 
} 

回答

0

嘗試這種模式:

public class Dog 
{ 
    [Key] 
    public int DogID { get; set; } 
    public string DogName { get; set; } 

    public int? DogSireID { get; set; } 
    [ForeignKey("DogSireID")] 
    public virtual Dog DogSire { get; set; } 

    public int? DogDamID { get; set; } 
    [ForeignKey("DogDamID")] 
    public virtual Dog DogDam { get; set; } 

    [InverseProperty("DogSire")] 
    public virtual ICollection<Dog> DogsSires { get; set; } 
    [InverseProperty("DogDam")] 
    public virtual ICollection<Dog> DogsDams { get; set; } 
}