簡體   English   中英

實體框架6沒有導航屬性的一對多關系

[英]Entity Framework 6 One-To-Many Relationship without Navigation Property

我有2個表:A和B有一對多的關系,這些表在EF 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;}
}

問題

當我從上下文中檢索B時, InstanceOfClassA始終為null。

假設

因為沒有導航屬性參考A實體中的B ,因此,實體框架在檢索B時不會延遲加載A

期待

因為我不需要從A訪問B ,所以我想擺脫A的導航屬性但仍保留B中延遲加載A的能力。

注意

我看過Map Many to Many關系中沒有導航屬性的帖子,但這不符合我的情況。

無論如何,我可以強制從B延遲加載A而不使用顯式include var b = context.B.Include(x => x.InstanceOfClassA); 也許定制會議

編輯1

我嘗試使用慣例如下,仍然沒有運氣:

modelbuilder.Entity<B>()
    .HasRequired<A>(x => x.InstanceOfClassA);

要使延遲加載工作,您必須使用virtual關鍵字標記navigation屬性:

[ForeignKey("AID")]
public virtual A InstanceOfClassA {get;set;}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM