填充导航属性集合懒惰

时间:2013-04-02 21:21:28

标签: entity-framework ef-code-first

我在一对多的关系中有两个相关的类。我可以在其中一个类中访问Class属性,但不能访问另一个类。

以下是我的课程:

 public  class Seccion
    {

        public int Id { get; set; }           
        public string  Nombre { get; set; }   
       public  ICollection<TipoCaracteristica> TiposCaracteristicas;

    }


    public class TipoCaracteristica
    {
        public int Id { get; set; }         
        public int SeccionId { get; set; }
        [ForeignKey("SeccionId")]
        public Seccion Seccion { get; set; }
        public List<CaracteristicaAdicional> Caracteristicas;
    }

使用此代码,我可以包含 Seccion 属性

 public IQueryable<TipoCaracteristica> GetTipoCaracteristicas
        {
            get { return db.TipoCaracteristicas.Include("Seccion"); }

        }

我无法获得包含 TipoCaracteristicas 列表的 Seccion 列表。我还需要为每个 TipoCaracteristicas 获取 Caracteristicas 列表。

这就是我正在尝试的

public IQueryable<Seccion> GetSecciones
        {
            get { return db.Secciones.Include("TiposCaracteristicas"); }
        }

但是我收到了这个错误:

  

指定的包含路径无效。 EntityType   'Seccion'没有声明导航属性   名为'TiposCaracteristicas'。

我该怎么做?我也可以包含其他级别吗?

提前感谢您的时间。

1 个答案:

答案 0 :(得分:2)

您需要做的是使用virtual关键字通知Entity Framework您的属性是导航属性。您还需要提供访问修饰符:

public virtual ICollection<TipoCaracteristica> TiposCaracteristicas { get; set; }