J'ai plongé dans un énorme problème. Je suis arrivé à ces deux objets: IList<Product> products;
et Collection collection;
Linq to NHibernate .ContainsAny() solution de contournement?
Les deux objets et contient IList<Tag>
.Tags nommés.
Je suis en train de faire cela avec la Linq Pour NHibernate:
products = products.Where(p => p.Tags.Any(t => collection.Tags.Contains(t)));
Cela donnera une exception, car Linq Pour NHibernate ne supportent pas cela. Mais comment puis-je accomplir cela? Je ne peux pas trouver une manière intelligente d'obtenir seulement le products
qui contient les étiquettes que le collection
a.
Merci d'avance! Btw, le problème semble très similaire à IQueryable contains any of string array, mais dans mon scénario, je ne veux pas comparer avec un tableau de chaînes, mais avec une collection d'objets poco.
[EDIT] Je trouve que cela jette cette exception: Unable to cast object of type 'System.Linq.Expressions.ConstantExpression' to type 'System.Linq.Expressions.LambdaExpression'.
D'autres moyens pour résoudre le problème est trop bienvenu (HQL etc).
Merci! [/ EDIT]
Oh, et je suis en utilisant NHibernate 2.1.2 – jhovgaard
façon alternative: mise à niveau vers la dernière version et le nouveau fournisseur de LINQ. Des requêtes similaires fonctionnent. Hql devrait être possible avec 2.1.2 – Paco