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

时间:2014-03-07 02:48:53

标签: 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;}
}

问题

当我从上下文中检索B时,InstanceOfClassA始终为空。

假设

因为没有导航属性,所以请参考B实体中的A,因此,在检索A时,实体框架不会延迟加载B

期待

因为我不需要从B访问A,所以我想删除A中的导航属性,但仍然保留延迟加载{{1}的能力来自A

注意

我看到了来自Map Many to Many relationship without navigation property的帖子,但这不符合我的情况。

我是否可以在不使用明确的包含B的情况下强制从A延迟加载B?也许定制会议

编辑1

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

var b = context.B.Include(x => x.InstanceOfClassA);

1 个答案:

答案 0 :(得分:1)

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

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