我有2個表:實體框架6一一對多的關係,而不導航屬性
public class A
{
[Key]
public int AID {get;set;}
public string AName {get;set;}
}
public class B
{
[Key]
public int BID {get;set;}
public string BName {get;set;}
public int AID {get;set;}
[ForeignKey("AID")]
public A InstanceOfClassA {get;set;}
}
問題:A和B具有一個一對多的關係,這些表是在如下EF 6實施
當我從上下文中檢索B
時,InstanceOfClassA
始終爲空。
假設
因爲沒有導航屬性是指B
在A
實體,因此,實體框架不延遲加載A
檢索B
時。
期待
因爲我並不需要從A
訪問B
,所以我想在A
擺脫導航屬性,但仍保持B
延遲加載A
的能力。
注意
我看到一個帖子從Map Many to Many relationship without navigation property但是這並不在我的情況適合。
有沒有反正我可以強制延遲加載A
從B
而不使用明確包括var b = context.B.Include(x => x.InstanceOfClassA);
?也許自定義公約
編輯1
我嘗試使用約定的跟隨,仍然可以得到沒有運氣:
modelbuilder.Entity<B>()
.HasRequired<A>(x => x.InstanceOfClassA);
如果您打算投下我的問題,請花一些時間留下評論我的意見錯誤。 –
我沒有看到這個問題有什麼問題。我花了一些時間研究同樣的事情,這樣我就不必在我從服務發送的所有內容中包含()。我想我最終在加載導航屬性的部分類中創建了一個構造函數。不知道如果這對你有用。 –
我雖然關於手動加載依賴關係。但仍在尋找可以在未來項目中使用的解決方案。自定義公約,例如,但我不知道如何實現這種關係的自定義約定 –