使用新的API QueryOver
在NHibernate的,我需要做一些事情当量:实施“其中不存在”与NHibernate QueryOver
换句话说:“给我一个不包含狗的所有类别餐饮”。
我最初的想法是这样的:
IEnumerable<Category> FindCategoriesWithoutProduct(Product product)
{
return _session
.QueryOver<Category>()
.Where(c => c.Products.Contains(product))
.List();
}
然而,这使得NHibernate.Impl.ExpressionProcessor
吹了一个“无法识别的方法调用”上System.Collections.Generic.ICollection<T>.Contains()
。
我认为必须有其他方式来做到这一点,可能涉及ICriterion
,但我在这里和谷歌的搜索没有任何用处。
“cp.CategoryID = c.Id”限制在哪里?不应该在分离的查询中有“Where(()=> categoryProductAlias.CategoryID = categoryAlias.ID)”吗? – psousa 2011-04-14 08:12:38