我已经撞到了一个巨大的问题。我到这两个对象: IList<Product> products;
和 Collection collection;
Linq以NHibernate .ContainsAny()解决方法?
两个对象都包含和IList<Tag>
命名.tags添加。
我试图使用LINQ to NHibernate的做这样的:
products = products.Where(p => p.Tags.Any(t => collection.Tags.Contains(t)));
这会给一个例外,因为LINQ的NHibernate的不支持此。但我怎么能做到这一点?我只是找不到任何聪明的方式只能得到products
,其中包含特定collection
具有的标签。
在此先感谢!
顺便说一句,这个问题看起来非常类似于IQueryable contains any of string array,但在我的方案中,我不想与字符串数组进行比较,而是使用poco对象的集合进行比较。
[编辑] 我发现它抛出此异常: Unable to cast object of type 'System.Linq.Expressions.ConstantExpression' to type 'System.Linq.Expressions.LambdaExpression'.
来解决问题的替代方法是受欢迎的太(HQL等)。
谢谢! [/编辑]
哦,我使用NHibernate 2.1.2 – jhovgaard 2010-10-23 14:03:09
替代办法:升级到最新版本,新的LINQ提供程序。类似的查询工作。 Hql应该可以用2.1.2 – Paco 2010-10-23 18:54:57