2009-05-18 4 views
2

Si je neFirstOrDefault() brise FetchType = se joindre à LINQ to NHibernate

Session.Linq<MyClass>().Where(x => x.Id = someId).FirstOrDefault(); 

MyClass a un ensemble d'objet enfant chargé indiscrète de lui, le FirstOrDefault() semble empêcher cela de travailler en ajoutant un TOP 1 à le SQL.

Est-ce juste un bug (fonctionnalité?) Dans Linq2NH (que je comprends être en cours de réécriture) ou est-ce qu'il me manque quelque chose?

Y a-t-il une alternative préférée qui fonctionne correctement?

Merci

Répondre

3

ressemble à un bug, dans mon FirstOrDefault d'opinion est un opérateur Linq assez bien défini et il n'a rien à voir avec le chargement désireux/paresseux, donc il ne devrait pas le casser.

Je suppose qu'il y a beaucoup de ces nuances, ce qui fait que la bibliothèque n'est pas prête pour la production. Je suggère de soumettre le bug les devs.

Retrait de DetachedCriteria (ou HQL) dans ce cas est la seule option à mon avis.

+0

C'est un bug, cela aide aussi à l'expliquer: http://ayende.com/Blog/archive/2006/05/02/CombatingTheSelectN1ProblemInNHibernate.aspx –