2010-07-16 7 views
1

Je suis en train de créer une requête LINQ 2 NHibernate qui génèrent un sql comme:Linq à la question NHibernate

select * from table 
where id in (1, 2, 3, 4) 

Au moment où j'ai ce code:

var vouchers = Session.Linq<Voucher>() 
            .Where(x => campaignIds.Contains(x.VoucherGroup.Campaign.Id)) 
            .ToArray(); 

Les campaignIds est tableau de variables 'longues'.

Mais ce code va simplement télécharger tous les justificatifs et les parcourir pour trouver uniquement ceux qui ont un campaignId spécifique.

Je pourrais bien sûr parcourir les identifiants de la campagne et appeler la base de données pour chaque ID de campagne et utiliser l'opérateur de l'union, mais je me demande s'il existe une façon plus élégante de le faire.

Merci

Répondre

1

Vous avez trouvé un bug. J'utilise des requêtes similaires avec le fournisseur linq dans le tronc et je n'ai pas de problèmes avec cela.