回答

1

假設你想創建一個自參照實體,我假設你有一個Product類像這樣:

public class Product 
{ 
    public int Id { get; set; } 

    public int? ParentId { get; set; } 

    public virtual Product Parent { get; set; } 
} 

在上下文,你需要實現OnModelCreating方法,以配置自我參考。

protected override void OnModelCreating(DbModelBuilder modelBuilder) 
{ 
    modelBuilder.Entity<Product>(). 
     HasOptional(e => e.Parent). 
     WithMany(). 
     HasForeignKey(m => m.ParentId); 
} 
+0

其實我試過了。它會導致另一個錯誤:導航屬性'Parent'不是'Product'類型的聲明屬性。驗證它是否未明確從模型中排除,並且它是有效的導航屬性。 有什麼建議嗎? – 2015-01-15 18:48:53

+0

它適用於我在我的答案中顯示的相同產品類的情況。你是否以同樣的方式聲明瞭Parent屬性? – octavioccl 2015-01-15 19:29:42

+0

Hello @ChrisKlingsater,我看到你發佈了一個關於該問題的新問題,你是否通過Parent屬性刪除了外鍵屬性?儘量不要將Fluent Api與Data Annotations合併,這不是一個好的做法 – octavioccl 2015-01-15 20:44:00