Je mets en place un service Web qui charge et enregistre un contrat d'hôtel. Structure de la classe (simplifiée)Comment charger efficacement des objets complexes dans Entity Framework 6
public class Contract
{
public int id { get; set; }
public virtual ICollection<Season> seasonList { get; set; }
public virtual ICollection<Room> roomList { get; set; }
}
public class Season
{
public int id { get; set; }
public Contract contract { get; set; }
public virtual ICollection<Season_Date> season_DateList { get; set; }
}
public class Room
{
public int id { get; set; }
public Contract contract { get; set; }
public virtual ICollection<Contingent> contingentList { get; set; }
}
public class Season_Date
{
public int id { get; set; }
public Season season { get; set; }
}
public class Contingent
{
public int id { get; set; }
public Season season { get; set; }
public Room room { get; set; }
}
Pour la méthode de chargement, il est nécessaire de charger un contrat avec tous ses détails. Je ne veux pas utiliser include, car il y a beaucoup de tables et de champs impliqués et je crains que la requête résultante soit complexe. Existe-t-il un moyen de charger les enregistrements season_date et contingent en utilisant l'identifiant du contrat?
salut. Le chargement paresseux ferait l'affaire, mais il n'est pas très efficace, quand je sais déjà, que j'ai besoin du graphique d'objet plein. Si j'ai 5 saisons et 2 dates par saison, qu'en utilisant le chargement différé je reçois 7 requêtes à la base de données (contrat + liste de saison + 5 x liste de season_date). mais en utilisant une jointure au contrat ou en créant une requête in (id list), les mêmes données pourraient être récupérées dans 3 requêtes (contrat + liste de saison + liste de season_date par contrat-id). –