2016-12-01 71 views
0

根模型上的導航屬性始終返回null,而同樣定義的模型上的次關係類似地加載正確。我試圖找出原因。實體框架根導航屬性爲空,但是後代導航屬性已填充

使用EF6代碼首先,預先加載,我的模型/導航性能的結構是這樣的:

  • ProjectUser
    • 項目(總是空)
    • 用戶(精負載)
    • 組(加載正常)
      • 客戶端
        • 項目(正確填充 - 應始終是相同ProjectUser.Project)

ProjectUser.Project總是空,但有趣的是,ProjectUser.Groups。 Clients.Project正確填充。我的項目映射,像這樣:

HasRequired(pu => pu.Project) 
    .WithOptional() 
    .Map(m => m.MapKey("ProjectId")); 

爲了進一步使事情變得混亂,我居然能拿到項目加載如果上述映射更改WithOptional()WithMany()。然而,這對我來說沒有任何意義...所以我的問題是:

爲什麼ProjectUser.Project在使用WithOptional時不加載?

+0

無法重現。確保模型和數據庫同步。此外,數據是正確的(因爲您設置的關係是「一對一」的,所以'ProjectUser'表中沒有重複的'ProjectId') –

回答

0

WithMany意味着您的實體可能具有許多導航屬性,因爲它被稱爲1對多。

WithOptional表示您的實體可能具有其中一個導航屬性。一對一的關係。

看看這個post