2
我有一個包含兩個導航屬性的類。實體框架中的多個自引用屬性代碼優先
public class Entity
{
public int Id { get; set; }
public Entity Parent { get; set; }
public Entity BaseEntity { get; set; }
}
當運行該應用程序EF拋出expcetion它說 「無法確定的類型‘Test.Entity’和‘Test.Entity’。這種關聯的主要端部之間的關聯的主要端必須使用關係流暢API或數據註釋來顯式配置「。
據我所知,當定義一對一關係並且沒有提供EF提示來正確確定關係的兩邊時,會引發此異常。
現在我有兩個問題。
首先,爲什麼在這裏提出這個例外?英孚能否以某種方式將這種情況視爲一對一的關係?
二,如何使用屬性解決這個問題? 我知道下面的Fluent API代碼解決了這個問題,但我更熟悉屬性。
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Entity>().HasOptional(e => e.Parent).WithOptionalDependent();
modelBuilder.Entity<Entity>().HasOptional(e => e.BaseEntity).WithOptionalDependent();
}