J'ai ce scénario:Nhinerbate chargement à l'entité de référence
class A
{
public virtual int Id { get; set; }
public virtual B Child { get; set; }
}
class B
{
public virtual int Id { get; set; }
}
Dans la mise en correspondance de classe A, j'ai une référence à la classe B:
map.Reference(a => a.Child).LazyLoad();
Maintenant, quand je fais quelque chose comme: En dehors de la sélection normale * de ATable, j'obtiens n sélections de la BTable pour chaque ligne A.
Session.Query<TypeOfA>().Select(a => a);
Est-ce que le chargement paresseux ne fonctionne pas.
Mes questions sont les suivantes:
- Comment je fais ici le travail de lazyload? Puis-je amener les entités A et B dans une seule requête?
Merci,
@Tom: Ce n'est pas vrai. Il y a * anohter * batch-size, qui peut être défini dans la configuration et utilise le traitement par lots d'ADO.NET. Cela permet à NH de créer des lots lors du vidage de la session, pour les instructions de mise à jour et d'insertion. Il est uniquement disponible pour Sql Server. (Voir http://ayende.com/Blog/2006/09/16/BatchingSupportInNHibernate.aspx). Mais la taille de lot dont je parle est pour les requêtes et est indépendante de la base de données. –
mon erreur - j'ai supprimé mon commentaire. –
@Tom: le problème est que NH utilise parfois des termes ambigus. cela rend la compréhension des fonctionnalités très difficile. –