Tenir compte suivant les requêtes LINQ-à-NHibernate:requête LINQ ne fonctionne pas sans .ToList()
var q1 = from se in query.ToList<SomeEntity>()
where
prop1 == "abc"
select se;
var q2 = from se in q1
where
m1(se.prop2) == "def"
select se;
q2
ne fonctionnera pas avec l'erreur: "La méthode n'est pas mis en œuvre m1". Mais quand remplacer q2
avec requête suivante, tout se passe bien:
var q2 = from se in q1.ToList<SomeEntity>()
where
m1(se.prop2) == "def"
select se;
Pourquoi cela se produit? Comment puis-je faire fonctionner la première requête? Est-ce quelque chose qui arrive pour LINQ-à-NHibernate seulement ou arrive dans toutes les requêtes LINQ?
Ceci est correct. Cependant, NHibernate 3 ** ** vous permet d'étendre le fournisseur LINQ pour supporter n'importe quel appel de méthode (bien sûr, vous devez savoir comment créer un arbre HQL à partir de celui-ci). Voir http://fabiomaulo.blogspot.com/2010/07/nhibernate-linq-provider-extension.html –
@Diego Mijelshon: fonctionnalité étonnante dans NHibernate 3, merci beaucoup d'informer. –