实体框架 6 没有导航属性的一对多关系

Doa*_*ong 5 c# ef-code-first entity-framework-6

我有 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;}
}
Run Code Online (Sandbox Code Playgroud)

问题

当我从上下文中检索时BInstanceOfClassA始终为空。

假设

B由于实体中没有引用导航属性,因此实体框架在检索时A不会延迟加载。AB

期待

因为我不需要B从访问A,因此我想摆脱 中的导航属性,但仍然保留从 中A延迟加载的能力。AB

笔记

我看到了没有导航属性的映射多对多关系的帖子,但这不适合我的情况。

无论如何,我可以在不使用显式 include 的情况A下强制延迟加载吗?也许是习惯惯例Bvar b = context.B.Include(x => x.InstanceOfClassA);

编辑1

我尝试使用如下约定,但仍然没有运气:

modelbuilder.Entity<B>()
    .HasRequired<A>(x => x.InstanceOfClassA);
Run Code Online (Sandbox Code Playgroud)

Mar*_*zek 2

要使延迟加载工作,您必须使用virtual关键字标记导航属性:

[ForeignKey("AID")]
public virtual A InstanceOfClassA {get;set;}
Run Code Online (Sandbox Code Playgroud)