Cargar Entidades Relacionadas Implícita y Explícita Entity Framework Code First c#
Programación |
c# |
EntityFramework |
Tengo una entidad Zona con estas propiedades:
Code Snippet
- public int Id { get; set; }
- public string Nombre { get; set; }
- public bool IsZonaAlejada { get; set; }
- public int LocalidadId { get; set; }
- public Localidad Localidad { get; set; }
- public List<Hotel> Hoteles { get; set; }
Hay varias formas de cargar as entidades relacionadas Localidad y Hoteles:
1.- Se puede hacer de forma
Implícita “incluyendo” las entidades relacionadas cuando se realiza la consulta en el contexto (DbContex –> db):
Code Snippet
- public static IQueryable<Zona> GetZonas(Db.DiscoverFormenteraDb db)
- {
- return db.Zonas.Include(z => z.Localidad).Include(z => z.Hoteles);
- }
2.- Se puede hacer de forma
Explícita como en el siguiente ejemplo
Code Snippet
- public void LoadHoteles(Db.DiscoverFormenteraDb db)
- {
- db.Entry(this).Collection(la => la.Hoteles).Query().Where();
- db.Entry(this).Collection(la => la.Hoteles).Load();
- db.Entry(this).Reference(la => la.Localidad).Load();
- }
- Collection: Se utiliza para cargar una colección. Utilizando Query() se pueden realizar filtros sobre la colección.
- Reference: Se utiliza para cargar un objeto.