J'utilise le dernier Nhibernate et j'ai une requête linq pour retourner seulement 1 colonne. donc je ne peux pas utiliser par exemple IQueryable car il n'y a pas de classe d'entité - je ne retourne qu'une seule colonne. Mais revenir à IQueryable version non générique ne fournit pas la méthode ToListNhibernate 3.0 LINQ: Problème renvoyé à IQueryable (version non générique) - n'autorise pas ToList()
Voici la méthode
public IQueryable GetCode()
{
using (ITransaction transaction = _session.BeginTransaction())
{
var results = (from c in _session.Query<Client>()
select new
{
Group = c.Code
}).Distinct();
}
}
Bien sûr, si je le fais (voir ci-dessous) je reçois la méthode ToList sur mon IQueryable
public IQueryable<Client> GetCode()
{
using (ITransaction transaction = _session.BeginTransaction())
{
var results = (from c in _session.Query<Client>()
select c;
}
}
Le problème étant que je dois faire DISTINCT et utiliser seulement 1 colonne.
Toutes les idées, je suis à une perte
Merci à l'avance
EDIT
Quand je regarde le type qui est retourné par IQueryable il est
{NHibernate. Linq.NhQueryable < <> f__AnonymeType6>}
et en regardant sous la classe de base de ce qui est retourné je vois une exception
Le type d'expression 10005 n'est pas supporté par ce SelectClauseVisitor.
Pourquoi vous enveloppez une transaction (qui est juste disposé) autour de la requête? Cela semble problématique pour plusieurs raisons. – Paco
Oui Paco, tu as raison mais ça ne résout pas le problème – Martin