0
使用實體框架流利的配置有同樣的表現方式,我會帶屬性做到這一點如何配置:如何將導航屬性配置爲實體框架中的同一張表?
public class Product
{
public int? ParentId { get; set; }
[ForeignKey("ParentId")]
public virtual Product Parent { get; set; }
}
使用實體框架流利的配置有同樣的表現方式,我會帶屬性做到這一點如何配置:如何將導航屬性配置爲實體框架中的同一張表?
public class Product
{
public int? ParentId { get; set; }
[ForeignKey("ParentId")]
public virtual Product Parent { get; set; }
}
假設你想創建一個自參照實體,我假設你有一個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);
}
其實我試過了。它會導致另一個錯誤:導航屬性'Parent'不是'Product'類型的聲明屬性。驗證它是否未明確從模型中排除,並且它是有效的導航屬性。 有什麼建議嗎? – 2015-01-15 18:48:53
它適用於我在我的答案中顯示的相同產品類的情況。你是否以同樣的方式聲明瞭Parent屬性? – octavioccl 2015-01-15 19:29:42
Hello @ChrisKlingsater,我看到你發佈了一個關於該問題的新問題,你是否通過Parent屬性刪除了外鍵屬性?儘量不要將Fluent Api與Data Annotations合併,這不是一個好的做法 – octavioccl 2015-01-15 20:44:00