Linq pour NHibernate et fetch mode de chargement impatient
y a-t-il un moyen de configurer le fetchmode pour avoir envie de plus d'un objet en utilisant linq pour nhibernate. Il semble y avoir une méthode d'expansion qui ne me permet de définir qu'un seul objet. Cependant j'ai besoin pour plus d'un objet. Est-ce possible? Merci
4 réponses
simplement l'utiliser plus d'une fois.
IList<Entity> GetDataFromDatabase()
{
var query = session.Linq<Entity>();
query.Expand("Property1");
query.Expand("Property2");
return query.ToList();
}
Le nouveau fournisseur Linq t-il un peu différemment:
var customers = session.Query<Customer>().Fetch(c => c.Orders).ToList();
Plus ici: http://mikehadlow.blogspot.com/2010/08/nhibernate-linq-eager-fetching.html
autant que je puisse voir, ce n'est pas équivalent: SetFetchMode hydrate un arbre d'objets et la méthode Expand récupère un produit cartésien.
Dans contiune @Mike Hadlow
réponse, aller chercher niveau suivant (petits-enfants) que vous devez faire:
var customers = session.Query<Customer>()
.FetchMany(c => c.Orders)
.ThenFetchMany(o => o.OrderLines).ToList();