EF7代理集合不生成

时间:2015-10-12 00:08:25

标签: c# asp.net entity-framework entity-framework-core

我正在尝试使用ASP.NET vNext / Entity Framework 7。

如果我有两个班级:A和B,其中一个A连接到很多" B'"实体框架不生成任何代理集合或代理类。因此,在尝试访问集合属性时,除非我手动添加到集合,否则它始终为空。如何在EF7中实现懒惰(甚至是热切)加载的集合?

public class A {
    public Guid UniqueId {get;set;}
    private ICollection<B> _backing;
    public virtual ICollection<B> OneToManyRelationship { 
      get { return _backing ?? (_backing = new Collection<B>()); }
      set { _backing = value; } }
}

public class B {
    public A Owner {get;set;}
    public string UniqueIdentifier {get;set;}
    public int SomeImportantData {get;set;}
}

1 个答案:

答案 0 :(得分:1)

EF 7 does not support lazy loading首次发布时。

  

这方面的一个例子是延迟加载支持,我们知道这对于许多开发人员来说是一个关键特性,但同时有许多应用程序可以在没有此功能的情况下开发。我们将拥有稳定的代码库并确信我们的核心组件具有正确的因子,而不是让每个人都等到它实现之后。要明确的是,并不是我们计划从EF7中删除延迟加载支持,只是有些应用程序可以在实现延迟加载之前开始利用EF7的优势。

虽然我尚未迁移到EF 7,但您应该能够急切地加载对象图,例如

using System.Data.Entity;

...

var query = ctx.A.Include(a => a.OneToManyRelationship);